he2802 4 лет назад
Родитель
Сommit
46a525786f

+ 5 - 0
zhongzheng-admin/src/main/resources/application.yml

@@ -244,3 +244,8 @@ wx:
   small:
     appid: wx8295c6fa6b0b3106
     appsecret: 2a95e366da4c4b17a3963e9756b878fd
+
+tencent:
+  cloud:
+    SecretId: AKIDd6XkjTw9D1atwkJceS2NSIuHPK1ThfOr
+    SecretKey: GG2ZqrdCWcS6Yx72h6F7k7E4ey2qPnwq

+ 44 - 0
zhongzheng-api/src/main/java/com/zhongzheng/controller/face/FaceController.java

@@ -0,0 +1,44 @@
+package com.zhongzheng.controller.face;
+
+import com.zhongzheng.common.core.controller.BaseController;
+import com.zhongzheng.common.core.domain.AjaxResult;
+import com.zhongzheng.common.utils.ServletUtils;
+import com.zhongzheng.framework.web.service.WxTokenService;
+import com.zhongzheng.modules.face.bo.FaceVo;
+import com.zhongzheng.modules.face.service.IFaceService;
+import com.zhongzheng.modules.polyv.service.IPolyvVideoService;
+import com.zhongzheng.modules.user.entity.ClientLoginUser;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.RequiredArgsConstructor;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import java.util.Map;
+
+/**
+ * 人脸核身Controller
+ *
+ * @author hjl
+ * @date 2021-06-18
+ */
+@Api(value = "人脸核身", tags = {"人脸核身"})
+@RequiredArgsConstructor(onConstructor_ = @Autowired)
+@RestController
+@RequestMapping("/face")
+public class FaceController extends BaseController {
+
+    private final IFaceService iFaceService;
+
+    @ApiOperation("获取识别凭证")
+    @GetMapping("/certification/BizToken")
+    public AjaxResult<FaceVo> getBizToken() throws Exception {
+        FaceVo face = iFaceService.getFaceDetectAuth();
+        return AjaxResult.success(face);
+    }
+
+
+}

+ 5 - 0
zhongzheng-api/src/main/resources/application.yml

@@ -241,3 +241,8 @@ wx:
   small:
     appid: wx8295c6fa6b0b3106
     appsecret: 2a95e366da4c4b17a3963e9756b878fd
+
+tencent:
+  cloud:
+    SecretId: AKIDd6XkjTw9D1atwkJceS2NSIuHPK1ThfOr
+    SecretKey: GG2ZqrdCWcS6Yx72h6F7k7E4ey2qPnwq

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/bo/FaceVo.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/face/bo/FaceVo.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.tencentcloud.bo;
+package com.zhongzheng.modules.face.bo;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/domain/DetectAuth.java → zhongzheng-system/src/main/java/com/zhongzheng/modules/face/domain/DetectAuth.java

@@ -1,4 +1,4 @@
-package com.zhongzheng.modules.tencentcloud.domain;
+package com.zhongzheng.modules.face.domain;
 
 import lombok.Data;
 import lombok.NoArgsConstructor;

+ 10 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/IFaceService.java

@@ -0,0 +1,10 @@
+package com.zhongzheng.modules.face.service;
+
+
+import com.zhongzheng.modules.face.bo.FaceVo;
+
+public interface IFaceService {
+
+    FaceVo getFaceDetectAuth();
+
+}

+ 51 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/face/service/impl/FaceServiceImpl.java

@@ -0,0 +1,51 @@
+package com.zhongzheng.modules.face.service.impl;
+
+
+import cn.hutool.core.bean.BeanUtil;
+import com.tencentcloudapi.common.Credential;
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
+import com.tencentcloudapi.common.profile.ClientProfile;
+import com.tencentcloudapi.common.profile.HttpProfile;
+import com.tencentcloudapi.faceid.v20180301.FaceidClient;
+import com.tencentcloudapi.faceid.v20180301.models.DetectAuthRequest;
+import com.tencentcloudapi.faceid.v20180301.models.DetectAuthResponse;
+import com.zhongzheng.modules.exam.domain.ExamArrangementGuide;
+import com.zhongzheng.modules.face.bo.FaceVo;
+import com.zhongzheng.modules.face.service.IFaceService;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+
+@Service
+public class FaceServiceImpl implements IFaceService {
+
+    @Value("${tencent.cloud.SecretId}")
+    private String SecretId;
+
+    @Value("${tencent.cloud.SecretKey}")
+    private String SecretKey;
+
+
+    @Override
+    public FaceVo getFaceDetectAuth() {
+        try{
+            Credential cred = new Credential(SecretId, SecretKey);
+
+            HttpProfile httpProfile = new HttpProfile();
+            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
+            ClientProfile clientProfile = new ClientProfile();
+            clientProfile.setHttpProfile(httpProfile);
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
+            String params = "{\"RuleId\":\"0\"}";
+            DetectAuthRequest req = DetectAuthRequest.fromJsonString(params, DetectAuthRequest.class);
+    //        DetectAuthRequest req = new DetectAuthRequest();
+            DetectAuthResponse resp = client.DetectAuth(req);
+            System.out.println(DetectAuthResponse.toJsonString(resp));
+            FaceVo vo = BeanUtil.toBean(resp, com.zhongzheng.modules.face.bo.FaceVo.class);
+            return vo;
+    //        return resp.getBizToken();
+        } catch (TencentCloudSDKException e) {
+            System.out.println(e.toString());
+        }
+        return null;
+    }
+}

+ 32 - 2
zhongzheng-system/src/main/java/com/zhongzheng/modules/polyv/service/impl/PolyvVideoServiceImpl.java

@@ -152,18 +152,48 @@ public class PolyvVideoServiceImpl extends ServiceImpl<PolyvVideoMapper, PolyvVi
         long ts = System.currentTimeMillis();      // 时间戳
         String extraParams = "HTML5";  // 自定义扩展参数
         boolean disposable = false; // true 表示 token 仅一次有效。false 则表示在有效期内可以多次验证。默认为 false。
-
+        String iswxa = "1";
         /* 将参数 userId、secretkey、videoId、ts、viewerIp、viewerIp、viewerId、viewerName、extraParams按照ASCKII升序 key + value + key + value ... +value 拼接
          */
-        String concated = "extraParams" + extraParams + "ts" + ts + "userId" + userId + "videoId" + videoId + "viewerId" + viewerId  ;
+        String concated = "extraParams" + extraParams  + "ts" + ts + "userId" + userId + "videoId" + videoId + "viewerId" + viewerId  ;
         // 首尾加上secretkey值
         String plain = secretkey + concated + secretkey;
         // 取大写MD5,可自行选择md5库
         String sign = md5Hex(plain).toUpperCase();
+
         Map<String,Object> map = new HashMap<>();
         map.put("sign",sign);
         map.put("ts",ts);
         return map;
+
+    /*    String url = "https://hls.videocc.net/service/v1/token";
+
+
+        Map<String, String> params = new HashMap<>();
+        params.put("userId", userId);
+        params.put("videoId", videoId);
+        params.put("ts", String.valueOf(ts));
+        params.put("extraParams", extraParams);
+        params.put("viewerId", viewerId);
+        params.put("sign", sign);
+        params.put("iswxa", iswxa);
+
+        // 可自行选择http客户端
+        String response = HttpUtils.postFormBody(url, params);
+
+        try {
+            //解析json
+            ObjectMapper objectMapper = new ObjectMapper();
+            TokenResponse tokenResponse = objectMapper.readValue(response, TokenResponse.class);
+            // 响应代码,200为成功,403为ts过期或签名错误,400为参数错误(例如缺少 userId 或 videoId)
+            if (tokenResponse.getCode() == 200) {
+                Map data = (Map) tokenResponse.getData();
+
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+        return null;*/
     }
 
 

+ 0 - 10
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/service/IFaceService.java

@@ -1,10 +0,0 @@
-package com.zhongzheng.modules.tencentcloud.service;
-
-
-import com.zhongzheng.modules.tencentcloud.bo.FaceVo;
-
-public interface IFaceService {
-
-    FaceVo getFaceDetectAuth();
-
-}

+ 0 - 15
zhongzheng-system/src/main/java/com/zhongzheng/modules/tencentcloud/service/impl/FaceServiceImpl.java

@@ -1,15 +0,0 @@
-package com.zhongzheng.modules.tencentcloud.service.impl;
-
-
-import com.zhongzheng.modules.system.service.ISysConfigService;
-import com.zhongzheng.modules.tencentcloud.bo.FaceVo;
-import com.zhongzheng.modules.tencentcloud.service.IFaceService;
-
-public class FaceServiceImpl implements IFaceService {
-
-
-    @Override
-    public FaceVo getFaceDetectAuth() {
-        return null;
-    }
-}