This commit is contained in:
77
2024-04-29 01:53:35 +08:00
parent fea74a2ac4
commit 89e0004600
4 changed files with 163 additions and 3 deletions

View File

@@ -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));
}
}