diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/IdentityAuthenticationController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/IdentityAuthenticationController.java index f097a64..66fedb3 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/IdentityAuthenticationController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/wisdomarbitrate/IdentityAuthenticationController.java @@ -1,5 +1,6 @@ package com.ruoyi.web.controller.wisdomarbitrate; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.wisdomarbitrate.domain.CaseApplication; @@ -19,27 +20,27 @@ public class IdentityAuthenticationController extends BaseController { private IdentityAuthenticationService identityAuthenticationService; /** - * 查询身份认证EIDtoken + * 获取EIDtoken */ @PostMapping("/selectIdentityAuthenticaEIDtoken") public AjaxResult selectIdentityAuthenticaEIDtoken() { - IdentityAuthentication ientityAuthentication = identityAuthenticationService.selectIdentityAuthenticaEIDtoken(); - return success(ientityAuthentication); + JSONObject tokenResult = identityAuthenticationService.selectIdentityAuthenticaEIDtoken(); + return success(tokenResult); } /** - * 查询身份认证结果 + * 小程序人脸核身后查询身份认证结果 */ @PostMapping("/selectIdentityAuthenticaRespon") public AjaxResult selectIdentityAuthenticaRespon(@Validated @RequestBody IdentityAuthentication ientityAuthentication) { - String username = this.getUsername(); - Long userId = this.getUserId(); - ientityAuthentication.setUserId(userId); - ientityAuthentication.setUserName(username); - IdentityAuthentication ientityAuthenticationRes = identityAuthenticationService.selectIdentityAuthenticaRespon( ientityAuthentication); - return success(ientityAuthenticationRes); +// String username = this.getUsername(); +// Long userId = this.getUserId(); +// ientityAuthentication.setUserId(userId); +// ientityAuthentication.setUserName(username); + JSONObject checkResult = identityAuthenticationService.selectIdentityAuthenticaRespon( ientityAuthentication); + return success(checkResult); } diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml index 77e53b1..206e38a 100644 --- a/ruoyi-common/pom.xml +++ b/ruoyi-common/pom.xml @@ -136,13 +136,13 @@ com.tencentcloudapi tencentcloud-sdk-java - 3.1.270 + 3.1.876 com.tencentcloudapi tencentcloud-sdk-java-faceid - 3.1.871 + 3.1.875 diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IdentityAuthenticationService.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IdentityAuthenticationService.java index 3748942..b98d66b 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IdentityAuthenticationService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/IdentityAuthenticationService.java @@ -1,15 +1,25 @@ package com.ruoyi.wisdomarbitrate.service; +import com.alibaba.fastjson.JSONObject; import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication; -import com.tencentcloudapi.common.exception.TencentCloudSDKException; public interface IdentityAuthenticationService { - IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication); + IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication); + /** + * 获取Eidtoken + * + * @return + */ + JSONObject selectIdentityAuthenticaEIDtoken(); - IdentityAuthentication selectIdentityAuthenticaEIDtoken(); - - IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication); + /** + * 小程序人脸核身后查询身份认证结果 + * + * @param ientityAuthentication + * @return + */ + JSONObject selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/IdentityAuthenticationServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/IdentityAuthenticationServiceImpl.java index 5d56387..f8686ed 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/IdentityAuthenticationServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/wisdomarbitrate/service/impl/IdentityAuthenticationServiceImpl.java @@ -1,27 +1,22 @@ package com.ruoyi.wisdomarbitrate.service.impl; - -import cn.hutool.crypto.SmUtil; -import cn.hutool.crypto.asymmetric.SM2; -import cn.hutool.crypto.symmetric.SymmetricCrypto; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.common.utils.StringUtils; -import com.ruoyi.exceptions.TradeException; import com.ruoyi.wisdomarbitrate.domain.IdentityAuthentication; import com.ruoyi.wisdomarbitrate.mapper.IdentityAuthenticationMapper; -import com.ruoyi.wisdomarbitrate.service.ICaseApplicationService; import com.ruoyi.wisdomarbitrate.service.IdentityAuthenticationService; - 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.common.exception.TencentCloudSDKException; import com.tencentcloudapi.faceid.v20180301.FaceidClient; -import com.tencentcloudapi.faceid.v20180301.models.*; - +import com.tencentcloudapi.faceid.v20180301.models.GetEidResultRequest; +import com.tencentcloudapi.faceid.v20180301.models.GetEidResultResponse; +import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenRequest; +import com.tencentcloudapi.faceid.v20180301.models.GetEidTokenResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -29,15 +24,8 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.FileInputStream; -import java.io.IOException; -import java.io.InputStream; -import java.util.Base64; -import java.util.HashMap; -import java.util.Map; - @Service -public class IdentityAuthenticationServiceImpl implements IdentityAuthenticationService { +public class IdentityAuthenticationServiceImpl implements IdentityAuthenticationService { @Value("${identityAuthentication.credentialSecretId}") private String credentialSecretId; @@ -58,9 +46,9 @@ public class IdentityAuthenticationServiceImpl implements IdentityAuthenticatio @Override public IdentityAuthentication selectIdentityAuthentication(IdentityAuthentication identityAuthentication) { IdentityAuthentication identityAuthenticationselect = identityAuthenticationMapper.selectIdentityAuthentication(identityAuthentication); - if(identityAuthenticationselect!=null){ + if (identityAuthenticationselect != null) { identityAuthenticationselect.setCertificationStatusName("已身份认证"); - }else { + } else { IdentityAuthentication identityAuthenticationselectnew = new IdentityAuthentication(); identityAuthenticationselectnew.setCertificationStatusName("未身份认证"); identityAuthenticationselectnew.setCertificationStatus(0); @@ -71,85 +59,64 @@ public class IdentityAuthenticationServiceImpl implements IdentityAuthenticatio } @Override - public IdentityAuthentication selectIdentityAuthenticaEIDtoken() { - IdentityAuthentication identityAuthentication = new IdentityAuthentication(); - try{ - Credential authenti = new Credential(credentialSecretId, credentialSecretKey); - HttpProfile httpProfileIdenAuth = new HttpProfile(); - httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com"); - ClientProfile clientInv= new ClientProfile(); - clientInv.setHttpProfile(httpProfileIdenAuth); - FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv); - // 实例化一个请求对象 - GetEidTokenRequest reqest = new GetEidTokenRequest(); - //设置请求参数 - reqest.setMerchantId(merchantId); - GetEidTokenResponse respIdenAuth = clientIdenAuth.GetEidToken(reqest); - String respJSON = GetEidTokenResponse.toJsonString(respIdenAuth); - JSONObject objJSON = JSON.parseObject(respJSON); - String eidToken = objJSON.getString("EidToken"); - String requestId = objJSON.getString("RequestId"); - identityAuthentication.setEidToken(eidToken); - }catch (TencentCloudSDKException e) { - log.error("获取Eidtoke异常:", e); - throw new RuntimeException("获取Eidtoke异常"); + public JSONObject selectIdentityAuthenticaEIDtoken() { + JSONObject objJSON = new JSONObject(); + objJSON.put("EidToken", ""); + try { + Credential cred = new Credential(credentialSecretId, credentialSecretKey); + // 实例化一个http选项,可选的,没有特殊需求可以跳过 + HttpProfile httpProfile = new HttpProfile(); + httpProfile.setEndpoint("faceid.tencentcloudapi.com"); + // 实例化一个client选项,可选的,没有特殊需求可以跳过 + ClientProfile clientProfile = new ClientProfile(); + clientProfile.setHttpProfile(httpProfile); + // 实例化要请求产品的client对象,clientProfile是可选的 + FaceidClient client = new FaceidClient(cred, "", clientProfile); + // 实例化一个请求对象,每个接口都会对应一个request对象 + GetEidTokenRequest req = new GetEidTokenRequest(); + // 返回的resp是一个GetEidTokenResponse的实例,与请求对象对应 + GetEidTokenResponse resp = client.GetEidToken(req); + // 输出json格式的字符串回包 + System.out.println(GetEidTokenResponse.toJsonString(resp)); + String respJSON = GetEidTokenResponse.toJsonString(resp); + objJSON = JSON.parseObject(respJSON); + } catch (TencentCloudSDKException e) { + System.out.println(e.toString()); + System.out.println("获取Eidtoken失败"); } - - return identityAuthentication; - + return objJSON; } @Override @Transactional - public IdentityAuthentication selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) { + public JSONObject selectIdentityAuthenticaRespon(IdentityAuthentication ientityAuthentication) { String eidToken = ientityAuthentication.getEidToken(); - Long userId = ientityAuthentication.getUserId(); - String userName = ientityAuthentication.getUserName(); - IdentityAuthentication IdentityAuthenticationRespon = new IdentityAuthentication(); - IdentityAuthentication IdentityAuthenticationResult = new IdentityAuthentication(); - if(StringUtils.isNotEmpty(eidToken)){ - try{ - Credential authenti = new Credential(credentialSecretId, credentialSecretKey); - HttpProfile httpProfileIdenAuth = new HttpProfile(); - httpProfileIdenAuth.setEndpoint("faceid.tencentcloudapi.com"); - ClientProfile clientInv= new ClientProfile(); - clientInv.setHttpProfile(httpProfileIdenAuth); - FaceidClient clientIdenAuth = new FaceidClient(authenti, "", clientInv); - // 实例化一个请求对象 - GetEidResultRequest reqest = new GetEidResultRequest(); - //设置请求参数 - reqest.setEidToken(eidToken); - -// reqest.setInfoType("1"); -// reqest.setInfoType("13"); -// reqest.setInfoType("2"); - - //获得身份认证结果 - GetEidResultResponse respIdenAuth = clientIdenAuth.GetEidResult(reqest); - String respJSON = GetEidResultResponse.toJsonString(respIdenAuth); - JSONObject objJSON = JSON.parseObject(respJSON); - IdentityAuthenticationRespon.setCertificationStatus(1); - IdentityAuthenticationRespon.setUserName(userName); - IdentityAuthenticationRespon.setUserId(userId); - - JSONObject objEidInfo = JSON.parseObject(objJSON.getString("EidInfo")); -// identityAuthenticationMapper.insertIdentityAuthentication(IdentityAuthenticationRespon); - IdentityAuthenticationResult.setCertificationStatus(1); - IdentityAuthenticationResult.setCertificationStatusName("认证成功"); - } catch (TencentCloudSDKException e) { - log.error("认证失败:", e); - throw new RuntimeException("认证失败"); - } + try { + Credential cred = new Credential(credentialSecretId, credentialSecretKey); + // 实例化一个http选项,可选的,没有特殊需求可以跳过 + HttpProfile httpProfile = new HttpProfile(); + httpProfile.setEndpoint("faceid.tencentcloudapi.com"); + // 实例化一个client选项,可选的,没有特殊需求可以跳过 + ClientProfile clientProfile = new ClientProfile(); + clientProfile.setHttpProfile(httpProfile); + // 实例化要请求产品的client对象,clientProfile是可选的 + FaceidClient client = new FaceidClient(cred, "", clientProfile); + // 实例化一个请求对象,每个接口都会对应一个request对象 + GetEidResultRequest req = new GetEidResultRequest(); + req.setEidToken(eidToken); + // 返回的resp是一个GetEidResultResponse的实例,与请求对象对应 + GetEidResultResponse resp = client.GetEidResult(req); + // 输出json格式的字符串回包 + System.out.println(GetEidResultResponse.toJsonString(resp)); + String s = GetEidResultResponse.toJsonString(resp); + JSONObject object = JSON.parseObject(s); + return object; + } catch (TencentCloudSDKException e) { + System.out.println(e.toString()); } - return IdentityAuthenticationResult; + return null; } - - - - - - }