init
This commit is contained in:
@@ -68,5 +68,10 @@
|
|||||||
<artifactId>wx-java-mp-spring-boot-starter</artifactId>
|
<artifactId>wx-java-mp-spring-boot-starter</artifactId>
|
||||||
<version>4.4.0</version>
|
<version>4.4.0</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.tencentcloudapi</groupId>
|
||||||
|
<artifactId>tencentcloud-sdk-java-faceid</artifactId>
|
||||||
|
<version>3.1.1008</version>
|
||||||
|
</dependency>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
||||||
|
|||||||
@@ -9,13 +9,17 @@ import com.ruoyi.xq.dto.app.pay.OrderCreateVo;
|
|||||||
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
import com.ruoyi.xq.enums.common.SystemConfigEnum;
|
||||||
import com.ruoyi.xq.manager.SystemConfigManager;
|
import com.ruoyi.xq.manager.SystemConfigManager;
|
||||||
import com.ruoyi.xq.service.AuthOrderService;
|
import com.ruoyi.xq.service.AuthOrderService;
|
||||||
|
import com.ruoyi.xq.tencent.CreateAuthResp;
|
||||||
|
import com.ruoyi.xq.tencent.TencentAuthClient;
|
||||||
|
import com.tencentcloudapi.faceid.v20180301.models.GetDetectInfoEnhancedResponse;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import org.apache.commons.collections4.map.HashedMap;
|
import org.apache.commons.collections4.map.HashedMap;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.web.bind.annotation.PostMapping;
|
import org.springframework.web.bind.annotation.*;
|
||||||
import org.springframework.web.bind.annotation.RequestMapping;
|
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
@@ -52,4 +56,44 @@ public class AuthOrderAppController {
|
|||||||
map.put("price",authCardPrice);
|
map.put("price",authCardPrice);
|
||||||
return R.ok(map);
|
return R.ok(map);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实名核身鉴权
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "实名核身鉴权")
|
||||||
|
@GetMapping(value = "/detectAuth")
|
||||||
|
public R<?> detectAuth(String extra,String redirectUrl) {
|
||||||
|
CreateAuthResp token = TencentAuthClient.createToken(extra, redirectUrl);
|
||||||
|
return R.ok(token);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获取实名核身结果信息
|
||||||
|
*
|
||||||
|
* @param bizToken
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "获取实名核身结果信息")
|
||||||
|
@GetMapping(value = "/getDetectInfo")
|
||||||
|
public R<?> getDetectInfo(@RequestParam String bizToken) {
|
||||||
|
GetDetectInfoEnhancedResponse detectInfo = TencentAuthClient.getDetectInfo(bizToken);
|
||||||
|
return R.ok(detectInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实名核身是否通过
|
||||||
|
*
|
||||||
|
* @param bizToken
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
@Operation(summary = "实名核身是否通过")
|
||||||
|
@GetMapping(value = "/faceDetectIsPass")
|
||||||
|
public R<Map<String,Boolean>> faceDetectIsPass(@RequestParam String bizToken) {
|
||||||
|
boolean b = TencentAuthClient.faceDetectIsPass(bizToken);
|
||||||
|
Map<String,Boolean> map = new HashMap<>();
|
||||||
|
map.put("result",b);
|
||||||
|
return R.ok(map);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,17 @@
|
|||||||
|
package com.ruoyi.xq.tencent;
|
||||||
|
|
||||||
|
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
@NoArgsConstructor
|
||||||
|
@Data
|
||||||
|
public class CreateAuthResp {
|
||||||
|
|
||||||
|
@JsonProperty("Url")
|
||||||
|
private String url;
|
||||||
|
@JsonProperty("BizToken")
|
||||||
|
private String bizToken;
|
||||||
|
@JsonProperty("RequestId")
|
||||||
|
private String requestId;
|
||||||
|
}
|
||||||
@@ -0,0 +1,94 @@
|
|||||||
|
package com.ruoyi.xq.tencent;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSON;
|
||||||
|
import com.ruoyi.xq.util.JsonUtils;
|
||||||
|
import com.tencentcloudapi.common.AbstractModel;
|
||||||
|
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.*;
|
||||||
|
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class TencentAuthClient {
|
||||||
|
|
||||||
|
public static boolean faceDetectIsPass(String bizToken) {
|
||||||
|
GetDetectInfoEnhancedResponse resp = getDetectInfo(bizToken);
|
||||||
|
if (!Objects.isNull(resp)) {
|
||||||
|
DetectInfoText text = resp.getText();
|
||||||
|
return !Objects.isNull(text) && text.getErrCode().intValue() == 0;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 实名核身鉴权
|
||||||
|
*
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public static GetDetectInfoEnhancedResponse getDetectInfo(String bizToken) {
|
||||||
|
GetDetectInfoEnhancedResponse resp = null;
|
||||||
|
try {
|
||||||
|
Credential cred = new Credential("AKIDviL2b1KWHGNdR6gLwLbfaHpBSVQ8i8Pe", "DapskQxS7gBXlsqgP0a0KXXK8oy45INf");
|
||||||
|
HttpProfile httpProfile = new HttpProfile();
|
||||||
|
httpProfile.setEndpoint("faceid.tencentcloudapi.com");
|
||||||
|
httpProfile.setConnTimeout(10); // 请求连接超时时间,单位为秒(默认60秒)
|
||||||
|
httpProfile.setWriteTimeout(10); // 设置写入超时时间,单位为秒(默认0秒)
|
||||||
|
httpProfile.setReadTimeout(10);
|
||||||
|
ClientProfile clientProfile = new ClientProfile();
|
||||||
|
clientProfile.setHttpProfile(httpProfile);
|
||||||
|
FaceidClient client = new FaceidClient(cred, "", clientProfile);
|
||||||
|
GetDetectInfoEnhancedRequest req = new GetDetectInfoEnhancedRequest();
|
||||||
|
req.setBizToken(bizToken);
|
||||||
|
req.setInfoType("0");
|
||||||
|
req.setRuleId("1");
|
||||||
|
resp = client.GetDetectInfoEnhanced(req);
|
||||||
|
} catch (TencentCloudSDKException e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return resp;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static CreateAuthResp createToken(String extra,String redirectUrl){
|
||||||
|
try{
|
||||||
|
// 实例化一个认证对象,入参需要传入腾讯云账户 SecretId 和 SecretKey,此处还需注意密钥对的保密
|
||||||
|
// 代码泄露可能会导致 SecretId 和 SecretKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考,建议采用更安全的方式来使用密钥,请参见:https://cloud.tencent.com/document/product/1278/85305
|
||||||
|
// 密钥可前往官网控制台 https://console.cloud.tencent.com/cam/capi 进行获取
|
||||||
|
Credential cred = new Credential("AKIDviL2b1KWHGNdR6gLwLbfaHpBSVQ8i8Pe", "DapskQxS7gBXlsqgP0a0KXXK8oy45INf");
|
||||||
|
// 实例化一个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对象
|
||||||
|
DetectAuthRequest req = new DetectAuthRequest();
|
||||||
|
req.setRuleId("1");
|
||||||
|
// 透传参数
|
||||||
|
req.setExtra(extra);
|
||||||
|
// 跳转的URL
|
||||||
|
req.setRedirectUrl(redirectUrl);
|
||||||
|
// 返回的resp是一个DetectAuthResponse的实例,与请求对象对应
|
||||||
|
DetectAuthResponse resp = client.DetectAuth(req);
|
||||||
|
// 输出json格式的字符串回包
|
||||||
|
System.out.println(AbstractModel.toJsonString(resp));
|
||||||
|
return JsonUtils.parseObject(AbstractModel.toJsonString(resp), CreateAuthResp.class);
|
||||||
|
} catch (TencentCloudSDKException e) {
|
||||||
|
System.out.println(e.toString());
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
// createToken(null,null);
|
||||||
|
GetDetectInfoEnhancedResponse detectInfo = getDetectInfo("09792FA0-C269-401F-B8DB-E68B680E0728");
|
||||||
|
System.out.println(JSON.toJSONString(detectInfo));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user