FaceAuthController.java 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package com.sqx.modules.face.controller;
  2. import com.sqx.modules.face.entity.FaceAuthRequest;
  3. import com.sqx.modules.face.service.FaceAuthService;
  4. import io.swagger.annotations.Api;
  5. import io.swagger.annotations.ApiOperation;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.http.ResponseEntity;
  8. import org.springframework.web.bind.annotation.*;
  9. import java.util.Map;
  10. @Api(value = "人脸识别", tags = {"人脸识别"})
  11. @RestController
  12. @RequestMapping("/api/face-auth")
  13. public class FaceAuthController {
  14. @Autowired
  15. private FaceAuthService faceAuthService;
  16. // 启动核身任务,返回跳转 URL 给小程序
  17. @PostMapping("/start")
  18. @ApiOperation("启动核身任务")
  19. public ResponseEntity<String> startFaceAuth(@RequestBody FaceAuthRequest request) {
  20. String authUrl = faceAuthService.createAuthUrl(request.getName(), request.getIdCard(), request.getUserId());
  21. return ResponseEntity.ok(authUrl);
  22. }
  23. // 接收腾讯回调通知核身完成(可配置在腾讯云控制台)
  24. @PostMapping("/callback")
  25. @ApiOperation("接收腾讯回调通知核身完成")
  26. public ResponseEntity<String> handleCallback(@RequestBody Map<String, Object> payload) {
  27. faceAuthService.handleCallback(payload);
  28. return ResponseEntity.ok("success");
  29. }
  30. // 主动查询核身结果(用 bizToken)仅保留三天
  31. @GetMapping("/result")
  32. @ApiOperation("主动查询核身结果")
  33. public ResponseEntity<Object> getAuthResult(@RequestParam String bizToken) {
  34. return ResponseEntity.ok(faceAuthService.getAuthResult(bizToken));
  35. }
  36. }