Просмотр исходного кода

优化腾讯人脸核身相关接口

gy b 2 лет назад
Родитель
Сommit
9aa2ff00eb

+ 11
- 10
ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/IdentityAuthenticationController.java Просмотреть файл

1
 package com.ruoyi.web.controller.wisdomarbitrate;
1
 package com.ruoyi.web.controller.wisdomarbitrate;
2
 
2
 
3
+import com.alibaba.fastjson.JSONObject;
3
 import com.ruoyi.common.core.controller.BaseController;
4
 import com.ruoyi.common.core.controller.BaseController;
4
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.common.core.domain.AjaxResult;
5
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
6
 import com.ruoyi.wisdomarbitrate.domain.CaseApplication;
19
     private IdentityAuthenticationService identityAuthenticationService;
20
     private IdentityAuthenticationService identityAuthenticationService;
20
 
21
 
21
     /**
22
     /**
22
-     * 查询身份认证EIDtoken
23
+     * 获取EIDtoken
23
      */
24
      */
24
     @PostMapping("/selectIdentityAuthenticaEIDtoken")
25
     @PostMapping("/selectIdentityAuthenticaEIDtoken")
25
     public AjaxResult selectIdentityAuthenticaEIDtoken()
26
     public AjaxResult selectIdentityAuthenticaEIDtoken()
26
     {
27
     {
27
-        IdentityAuthentication ientityAuthentication = identityAuthenticationService.selectIdentityAuthenticaEIDtoken();
28
-        return success(ientityAuthentication);
28
+        JSONObject tokenResult = identityAuthenticationService.selectIdentityAuthenticaEIDtoken();
29
+        return success(tokenResult);
29
     }
30
     }
30
 
31
 
31
     /**
32
     /**
32
-     * 查询身份认证结果
33
+     * 小程序人脸核身后查询身份认证结果
33
      */
34
      */
34
     @PostMapping("/selectIdentityAuthenticaRespon")
35
     @PostMapping("/selectIdentityAuthenticaRespon")
35
     public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication)
36
     public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication)
36
     {
37
     {
37
-        String username = this.getUsername();
38
-        Long userId = this.getUserId();
39
-        ientityAuthentication.setUserId(userId);
40
-        ientityAuthentication.setUserName(username);
41
-        IdentityAuthentication ientityAuthenticationRes = identityAuthenticationService.selectIdentityAuthenticaRespon( ientityAuthentication);
42
-        return success(ientityAuthenticationRes);
38
+//        String username = this.getUsername();
39
+//        Long userId = this.getUserId();
40
+//        ientityAuthentication.setUserId(userId);
41
+//        ientityAuthentication.setUserName(username);
42
+        JSONObject checkResult = identityAuthenticationService.selectIdentityAuthenticaRespon( ientityAuthentication);
43
+        return success(checkResult);
43
     }
44
     }
44
 
45
 
45
 
46
 

+ 2
- 2
ruoyi-common/pom.xml Просмотреть файл

136
         <dependency>
136
         <dependency>
137
             <groupId>com.tencentcloudapi</groupId>
137
             <groupId>com.tencentcloudapi</groupId>
138
             <artifactId>tencentcloud-sdk-java</artifactId>
138
             <artifactId>tencentcloud-sdk-java</artifactId>
139
-            <version>3.1.270</version>
139
+            <version>3.1.876</version>
140
         </dependency>
140
         </dependency>
141
 
141
 
142
         <dependency>
142
         <dependency>
143
             <groupId>com.tencentcloudapi</groupId>
143
             <groupId>com.tencentcloudapi</groupId>
144
             <artifactId>tencentcloud-sdk-java-faceid</artifactId>
144
             <artifactId>tencentcloud-sdk-java-faceid</artifactId>
145
-            <version>3.1.871</version>
145
+            <version>3.1.875</version>
146
         </dependency>
146
         </dependency>
147
 
147
 
148
         <dependency>
148
         <dependency>

+ 15
- 5
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IdentityAuthenticationService.java Просмотреть файл

1
 package com.ruoyi.wisdomarbitrate.service;
1
 package com.ruoyi.wisdomarbitrate.service;
2
 
2
 
3
+import com.alibaba.fastjson.JSONObject;
3
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
4
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
4
-import com.tencentcloudapi.common.exception.TencentCloudSDKException;
5
 
5
 
6
 public interface IdentityAuthenticationService {
6
 public interface IdentityAuthenticationService {
7
 
7
 
8
 
8
 
9
-    IdentityAuthentication  selectIdentityAuthentication(IdentityAuthentication identityAuthentication);
9
+    IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication);
10
 
10
 
11
+    /**
12
+     * 获取Eidtoken
13
+     *
14
+     * @return
15
+     */
16
+    JSONObject selectIdentityAuthenticaEIDtoken();
11
 
17
 
12
-    IdentityAuthentication selectIdentityAuthenticaEIDtoken();
13
-
14
-    IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication);
18
+    /**
19
+     * 小程序人脸核身后查询身份认证结果
20
+     *
21
+     * @param ientityAuthentication
22
+     * @return
23
+     */
24
+    JSONObject selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication);
15
 }
25
 }

+ 57
- 90
ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/IdentityAuthenticationServiceImpl.java Просмотреть файл

1
 package com.ruoyi.wisdomarbitrate.service.impl;
1
 package com.ruoyi.wisdomarbitrate.service.impl;
2
 
2
 
3
 
3
 
4
-
5
-import cn.hutool.crypto.SmUtil;
6
-import cn.hutool.crypto.asymmetric.SM2;
7
-import cn.hutool.crypto.symmetric.SymmetricCrypto;
8
 import com.alibaba.fastjson.JSON;
4
 import com.alibaba.fastjson.JSON;
9
 import com.alibaba.fastjson.JSONObject;
5
 import com.alibaba.fastjson.JSONObject;
10
 import com.ruoyi.common.core.domain.AjaxResult;
6
 import com.ruoyi.common.core.domain.AjaxResult;
11
 import com.ruoyi.common.utils.StringUtils;
7
 import com.ruoyi.common.utils.StringUtils;
12
-import com.ruoyi.exceptions.TradeException;
13
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
8
 import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication;
14
 import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
9
 import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper;
15
-import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService;
16
 import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
10
 import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService;
17
-
18
 import com.tencentcloudapi.common.Credential;
11
 import com.tencentcloudapi.common.Credential;
12
+import com.tencentcloudapi.common.exception.TencentCloudSDKException;
19
 import com.tencentcloudapi.common.profile.ClientProfile;
13
 import com.tencentcloudapi.common.profile.ClientProfile;
20
 import com.tencentcloudapi.common.profile.HttpProfile;
14
 import com.tencentcloudapi.common.profile.HttpProfile;
21
-import com.tencentcloudapi.common.exception.TencentCloudSDKException;
22
 import com.tencentcloudapi.faceid.v20180301.FaceidClient;
15
 import com.tencentcloudapi.faceid.v20180301.FaceidClient;
23
-import com.tencentcloudapi.faceid.v20180301.models.*;
24
-
16
+import com.tencentcloudapi.faceid.v20180301.models.GetEidResultRequest;
17
+import com.tencentcloudapi.faceid.v20180301.models.GetEidResultResponse;
18
+import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenRequest;
19
+import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenResponse;
25
 import org.slf4j.Logger;
20
 import org.slf4j.Logger;
26
 import org.slf4j.LoggerFactory;
21
 import org.slf4j.LoggerFactory;
27
 import org.springframework.beans.factory.annotation.Autowired;
22
 import org.springframework.beans.factory.annotation.Autowired;
29
 import org.springframework.stereotype.Service;
24
 import org.springframework.stereotype.Service;
30
 import org.springframework.transaction.annotation.Transactional;
25
 import org.springframework.transaction.annotation.Transactional;
31
 
26
 
32
-import java.io.FileInputStream;
33
-import java.io.IOException;
34
-import java.io.InputStream;
35
-import java.util.Base64;
36
-import java.util.HashMap;
37
-import java.util.Map;
38
-
39
 @Service
27
 @Service
40
-public class IdentityAuthenticationServiceImpl  implements IdentityAuthenticationService {
28
+public class IdentityAuthenticationServiceImpl implements IdentityAuthenticationService {
41
 
29
 
42
     @Value("${identityAuthentication.credentialSecretId}")
30
     @Value("${identityAuthentication.credentialSecretId}")
43
     private String credentialSecretId;
31
     private String credentialSecretId;
58
     @Override
46
     @Override
59
     public IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication) {
47
     public IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication) {
60
         IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication);
48
         IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication);
61
-        if(identityAuthenticationselect!=null){
49
+        if (identityAuthenticationselect != null) {
62
             identityAuthenticationselect.setCertificationStatusName("已身份认证");
50
             identityAuthenticationselect.setCertificationStatusName("已身份认证");
63
-        }else {
51
+        } else {
64
             IdentityAuthentication identityAuthenticationselectnew = new IdentityAuthentication();
52
             IdentityAuthentication identityAuthenticationselectnew = new IdentityAuthentication();
65
             identityAuthenticationselectnew.setCertificationStatusName("未身份认证");
53
             identityAuthenticationselectnew.setCertificationStatusName("未身份认证");
66
             identityAuthenticationselectnew.setCertificationStatus(0);
54
             identityAuthenticationselectnew.setCertificationStatus(0);
71
     }
59
     }
72
 
60
 
73
     @Override
61
     @Override
74
-    public IdentityAuthentication selectIdentityAuthenticaEIDtoken() {
75
-        IdentityAuthentication identityAuthentication = new IdentityAuthentication();
76
-        try{
77
-            Credential authenti = new Credential(credentialSecretId, credentialSecretKey);
78
-            HttpProfile httpProfileIdenAuth = new HttpProfile();
79
-            httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com");
80
-            ClientProfile clientInv= new ClientProfile();
81
-            clientInv.setHttpProfile(httpProfileIdenAuth);
82
-            FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv);
83
-            // 实例化一个请求对象
84
-            GetEidTokenRequest reqest = new GetEidTokenRequest();
85
-            //设置请求参数
86
-            reqest.setMerchantId(merchantId);
87
-            GetEidTokenResponse respIdenAuth = clientIdenAuth.GetEidToken(reqest);
88
-            String respJSON = GetEidTokenResponse.toJsonString(respIdenAuth);
89
-            JSONObject objJSON = JSON.parseObject(respJSON);
90
-            String eidToken = objJSON.getString("EidToken");
91
-            String requestId = objJSON.getString("RequestId");
92
-            identityAuthentication.setEidToken(eidToken);
93
-        }catch (TencentCloudSDKException e) {
94
-            log.error("获取Eidtoke异常:", e);
95
-            throw new RuntimeException("获取Eidtoke异常");
62
+    public JSONObject selectIdentityAuthenticaEIDtoken() {
63
+        JSONObject objJSON = new JSONObject();
64
+        objJSON.put("EidToken", "");
65
+        try {
66
+            Credential cred = new Credential(credentialSecretId, credentialSecretKey);
67
+            // 实例化一个http选项,可选的,没有特殊需求可以跳过
68
+            HttpProfile httpProfile = new HttpProfile();
69
+            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
70
+            // 实例化一个client选项,可选的,没有特殊需求可以跳过
71
+            ClientProfile clientProfile = new ClientProfile();
72
+            clientProfile.setHttpProfile(httpProfile);
73
+            // 实例化要请求产品的client对象,clientProfile是可选的
74
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
75
+            // 实例化一个请求对象,每个接口都会对应一个request对象
76
+            GetEidTokenRequest req = new GetEidTokenRequest();
77
+            // 返回的resp是一个GetEidTokenResponse的实例,与请求对象对应
78
+            GetEidTokenResponse resp = client.GetEidToken(req);
79
+            // 输出json格式的字符串回包
80
+            System.out.println(GetEidTokenResponse.toJsonString(resp));
81
+            String respJSON = GetEidTokenResponse.toJsonString(resp);
82
+            objJSON = JSON.parseObject(respJSON);
83
+        } catch (TencentCloudSDKException e) {
84
+            System.out.println(e.toString());
85
+            System.out.println("获取Eidtoken失败");
96
         }
86
         }
97
-
98
-        return identityAuthentication;
99
-
87
+        return objJSON;
100
     }
88
     }
101
 
89
 
102
     @Override
90
     @Override
103
     @Transactional
91
     @Transactional
104
-    public IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) {
92
+    public JSONObject selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) {
105
         String eidToken = ientityAuthentication.getEidToken();
93
         String eidToken = ientityAuthentication.getEidToken();
106
-        Long userId = ientityAuthentication.getUserId();
107
-        String userName = ientityAuthentication.getUserName();
108
-        IdentityAuthentication IdentityAuthenticationRespon = new IdentityAuthentication();
109
-        IdentityAuthentication IdentityAuthenticationResult = new IdentityAuthentication();
110
-        if(StringUtils.isNotEmpty(eidToken)){
111
-            try{
112
-                Credential authenti = new Credential(credentialSecretId, credentialSecretKey);
113
-                HttpProfile httpProfileIdenAuth = new HttpProfile();
114
-                httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com");
115
-                ClientProfile clientInv= new ClientProfile();
116
-                clientInv.setHttpProfile(httpProfileIdenAuth);
117
-                FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv);
118
-                // 实例化一个请求对象
119
-                GetEidResultRequest reqest = new GetEidResultRequest();
120
-                //设置请求参数
121
-                reqest.setEidToken(eidToken);
122
-
123
-//                reqest.setInfoType("1");
124
-//                reqest.setInfoType("13");
125
-//                reqest.setInfoType("2");
126
-
127
-                //获得身份认证结果
128
-                GetEidResultResponse respIdenAuth = clientIdenAuth.GetEidResult(reqest);
129
-                String respJSON = GetEidResultResponse.toJsonString(respIdenAuth);
130
-                JSONObject objJSON = JSON.parseObject(respJSON);
131
-                IdentityAuthenticationRespon.setCertificationStatus(1);
132
-                IdentityAuthenticationRespon.setUserName(userName);
133
-                IdentityAuthenticationRespon.setUserId(userId);
134
-
135
-                JSONObject objEidInfo = JSON.parseObject(objJSON.getString("EidInfo"));
136
-//                identityAuthenticationMapper.insertIdentityAuthentication(IdentityAuthenticationRespon);
137
-                IdentityAuthenticationResult.setCertificationStatus(1);
138
-                IdentityAuthenticationResult.setCertificationStatusName("认证成功");
139
-            } catch (TencentCloudSDKException e) {
140
-                log.error("认证失败:", e);
141
-                throw new RuntimeException("认证失败");
142
-            }
143
 
94
 
95
+        try {
96
+            Credential cred = new Credential(credentialSecretId, credentialSecretKey);
97
+            // 实例化一个http选项,可选的,没有特殊需求可以跳过
98
+            HttpProfile httpProfile = new HttpProfile();
99
+            httpProfile.setEndpoint("faceid.tencentcloudapi.com");
100
+            // 实例化一个client选项,可选的,没有特殊需求可以跳过
101
+            ClientProfile clientProfile = new ClientProfile();
102
+            clientProfile.setHttpProfile(httpProfile);
103
+            // 实例化要请求产品的client对象,clientProfile是可选的
104
+            FaceidClient client = new FaceidClient(cred, "", clientProfile);
105
+            // 实例化一个请求对象,每个接口都会对应一个request对象
106
+            GetEidResultRequest req = new GetEidResultRequest();
107
+            req.setEidToken(eidToken);
108
+            // 返回的resp是一个GetEidResultResponse的实例,与请求对象对应
109
+            GetEidResultResponse resp = client.GetEidResult(req);
110
+            // 输出json格式的字符串回包
111
+            System.out.println(GetEidResultResponse.toJsonString(resp));
112
+            String s = GetEidResultResponse.toJsonString(resp);
113
+            JSONObject object = JSON.parseObject(s);
114
+            return object;
115
+        } catch (TencentCloudSDKException e) {
116
+            System.out.println(e.toString());
144
         }
117
         }
145
-        return IdentityAuthenticationResult;
118
+        return null;
146
     }
119
     }
147
 
120
 
148
 
121
 
149
-
150
-
151
-
152
-
153
-
154
-
155
 }
122
 }