工具方法(二)-java实现腾讯人脸核身功能(bizToken获取、用户认证信息获取)

本文档详细介绍了如何在后端项目中集成腾讯云的人脸核身服务,包括获取bizToken的步骤和前端实现身份证与人脸对比认证的流程。后端通过Java SDK设置密钥和接口调用,获取bizToken,前端完成用户身份证和活体人脸照的上传,腾讯云进行比对。比对成功后,后端可获取并存储用户信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

该工具方法主要用于开发者使用腾讯云服务中的人脸核身功能进行人脸与身份证对比认证操作

实现
  • 后端项目引入腾讯云依赖
        <dependency>
            <groupId>com.tencentcloudapi</groupId>
            <artifactId>tencentcloud-sdk-java</artifactId>
        </dependency>
  • 获取bizToken

注:目前腾讯云人脸与身份证对比认证由前端实现,但需要一个bizToken参数,需要后端提供
官方参考文档

    //腾讯云密匙
    private static String secretId = "";
    private static String secretKey = "";
    private static String bizTokenUrl = "faceid.tencentcloudapi.com";
    //人脸核身业务流程RuleID(在人脸核身控制台查看)
    private static String ruleId = "";

    public static ResponseData getTencentBizToken() {
        Credential cred = new Credential(secretId, secretKey);
        HttpProfile httpProfile = new HttpProfile();
        httpProfile.setEndpoint(bizTokenUrl);
        ClientProfile clientProfile = new ClientProfile();
        clientProfile.setHttpProfile(httpProfile);
        FaceidClient client = new FaceidClient(cred, "", clientProfile);
        DetectAuthRequest req = new DetectAuthRequest();
        req.setRuleId(ruleId);
        DetectAuthResponse resp = null;
        try {
            resp = client.DetectAuth(req);
        } catch (TencentCloudSDKException e) {
            e.printStackTrace();
        }
        String toJsonString = DetectAuthRequest.toJsonString(resp);
        LogUtil.info("腾讯云获取bizToken接口返回值:{}",toJsonString);
        JSONObject jsonObject = JSON.parseObject(toJsonString);
        return ResponseData.success(jsonObject.getString("BizToken"));
    }

  • 前端实现人脸与身份证对比认证(实现步骤略)
  1. 前端实现用户身份证上传至腾讯云
  2. 前端上传活体人脸照至腾讯云
  3. 腾讯云进行人脸对比
  4. 对比成功则返回对比用户的专属bizToken
  • 获取人脸对比成功的用户信息

可用于前端对比成功调用接口,将用户信息存储到数据库
官方参考文档

 	/**
     * 
     * @param bizToken 用户专属bizToken
     * @return
     */
 public static JSONObject  getTencentCompare(String bizToken){
        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);
            GetDetectInfoRequest req = new GetDetectInfoRequest();
            req.setBizToken(bizToken);
            req.setInfoType("0");
            req.setRuleId(ruleId );
            GetDetectInfoResponse resp = client.GetDetectInfo(req);
            String resultInfo = GetDetectInfoResponse.toJsonString(resp);
            if(StringUtils.isEmpty(resultInfo)){
                log.error("身份信息请求失败--------------");
                return null;
            }
            JSONObject jsonObject = JSONObject.parseObject(resultInfo);
            String detectInfo = jsonObject.getString("DetectInfo");
            if(org.apache.commons.lang.StringUtils.isBlank(detectInfo)){
                log.error("身份信息获取失败--------------");
                return null;
            }
            JSONObject jsonObject2 = JSONObject.parseObject(detectInfo);
            if(jsonObject2 == null){
               return null;
            }
            return jsonObject2;
        } catch (TencentCloudSDKException e) {
            e.printStackTrace();
            return null;
        }
    }

搞定。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

RemainderTime

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值