学习
实践
活动
专区
工具
TVP
写文章
专栏首页腾讯云AI最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航
原创

最佳实践 | 用腾讯云AI意愿核身为电话合规保驾护航

近些年,不法分子盗用他人的电话信息实施诈骗严重影响了部分人的正常生活。针对这一情况,运营商也加强了对高危电话用户进行二次实人、实名、语音认证,提醒用户使用的电话卡涉嫌法律风险并承诺合规使用;但在实际落地上也面临挑战,不仅会增加人力等成本,还很容易出错。作为一名软件开发工程师,我开始尝试和调研,希望可以通过更加智能和降本增效的方式来解决这一问题。

在调研的过程中,我发现腾讯云AI推出的意愿核身功能就挺匹配。但意愿核身功能会不会被第三方软件攻击呢,他们的核验结果是不是一定准确呢?

带着这些疑问,我去查阅了官方资料,发现腾讯云AI 意愿核身功能是结合人脸核身与实时音视频技术打造的一款满足实名、实人、真实意愿的产品,还是首批通过国家信通院人脸识别评估的产品,并且荣获四级(优秀级)安全防护等级。流程上也很简单:第一步对客户的身份证件进行OCR识别,保证身份证的真实性;第二步让客户进行人脸核身,保证该客户身份的真实性;最后让客户进行意愿核身,保证客户的真实意愿。不仅如此,腾讯云AI 意愿核身也提供了微信小程序、微信H5、SDK等多种接入方式。

接下来,我将详细讲述我是如何接入腾讯云AI 意愿核身的。

1. 准备工作

第一步:开通人脸核身服务

我们先进入腾讯云AI 人脸核身控制台 ,首次使用人脸核身服务的用户,需要先开通人脸核身服务。直接 点击提交申请,按照实际情况填写信息,提交申请。

特别提醒:1. 互联网行业和金融行业必须上传业务相关营业资质。

2. 因为 腾讯云AI 意愿核身不仅支持权威库比对,还 支持客户自传照片,所以需要的功能组合为:活体人脸核身(完成活体检测后照片与权威库比对)和活体人脸比对(完成活体检测后照片与上传照片比对)。

第二步:业务申请

我们可以根据自己的业务需求,选择相对应的接入模式,申请对应的业务

需要注意以下几点:1. 只能个人政务/个人办理政府业务(政府机构或事业单位)、教育(学校)、医疗(公立医疗机构、互联网医院、私立医疗机构)和商业服务(公证)才能使用微信原生H5(浮层模式),其他机构可以使用微信H5(普通模式)。

2. 只有政务民生(政府机构或事业单位)、 教育(学校)、 医疗(公立医疗机构、互联网医院、私立医疗机构)、 金融业(银行、信托、公募基金、证券/期货、保险、消费金融)、 快递业与邮政(寄件/收件)、 交通服务(打车、航空、地铁、水运、城市交通卡、城市共享交通、火车、公交公司、长途客运、租车、高速服务)、 生活服务(生活缴费)、 IT科技(基础电信运营商、转售移动通信)、 旅游(酒店服务)、 商业服务(公证)和 社交(直播)才能使用微信小程序。

3. 如果需要申请微信原生H5(浮层模式)和微信小程序,但是没有对应的微信小程序和公众号,可以前往微信公众平台进行申请。

4. 申请微信原生H5(浮层模式)和微信小程序需要相应的资质文件

第三步:了解腾讯云AI 意愿核身

我们可以先去官网上了解一下腾讯云AI 意愿核身 、计费错误码等信息。

第四步:意愿核身配置

在相关的业务通过审核之后,我们需要联系腾讯云AI 人脸核身助手,完成意愿核身业务的配置。

第五步: 获取账号的云API密钥

我们需要个人密钥。在腾讯云访问管理的 API密钥管理页面 ,我们新建了个人密钥。

注意:所申请的API密钥需要妥善保管。

2. 接入意愿核身

第一步:给腾讯云AI 意愿核身授权

小程序开发需要授权, 打开二维码 ,小程序管理员扫码后,单击自定义权限,只勾选人脸核身权限,将该权限授权给慧眼第三方平台,操作步骤如下图所示:

第二步:给腾讯云AI 意愿核身赋予开启实时播放/录制音视频流权限

使用腾讯云AI 意愿核身需要开启实时播放音视频流 (live-player) 和实时录制音视频流(live-pusher),所以我们要登录 微信公众平台 开启对应的权限 。

第三步:给腾讯云AI 意愿核身域名添加白名单

登录 微信公众平台,给腾讯云AI 意愿核身需要的域名加白名单权限

相关操作如下所示:

1. 需要将以下域名添加到 request 合法域名:

https://events.tim.qq.com;https://faceid.qq.com;https://grouptalk.c2c.qq.com;

https://pingtas.qq.com;https://web.sdk.qcloud.com;https://webim.tim.qq.com;https://yun.tim.qq.com;

2.需要将以下域名添加到 socket 合法域名:wss://wss.im.qcloud.com;wss://wss.tim.qq.com;

3.需要将以下域名添加到 uploadFile 合法域名:https://cos.ap-shanghai.myqcloud.com;https://faceid.qq.com;

4.需要将以下域名添加到 uploadFile 合法域名:https://cos.ap-shanghai.myqcloud.com;https://faceid.qq.com;

第四步:初始化腾讯云AI 意愿核身SDK

下载 意愿核身小程序 SDK ,将 verify_mpsdk 文件夹放到小程序项目根目录,调用 init 方法,初始化意愿核身 SDK。

微信小程序接入意愿核身,腾讯云AI 团队也提供了意愿核身 demo,可以供我们参考。

//app.js
App({
    onLaunch: function () {
        // 初始化意愿核身组件
        const Verify = require('/verify_mpsdk/main');
        Verify.init();
    }
}) 
// app.json
{
    "pages":[
        "verify_mpsdk/index/index"
    ]
}

第五步:后端接入腾讯云AI 意愿核身 实名核身鉴权接口

调用腾讯云AI 意愿核身 实名核身鉴权接口, 获取意愿核身流程标识BizToken。Java SDK的引入可以参考Java SDK接入指引

特别提示:需要传入意愿核身所需字段(字段名 IntentionVerifyText);SecretId和SecretKey在准备接入的第五步就可以拿到了。

腾讯云AI 意愿核身提供了多种主流语言接入,包含Java、Python、Go等,我们使用的是Java语言,就以Java为例:

import com.tencentcloudapi.common.Credential;
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.*;

public class DetectAuth
{
    public static void main(String [] args) {
        try{
            // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
            // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
            Credential cred = new Credential("SecretId", "SecretKey");
            // 实例化一个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();
            
            // 返回的resp是一个DetectAuthResponse的实例,与请求对象对应
            DetectAuthResponse resp = client.DetectAuth(req);
            // 输出json格式的字符串回包
            System.out.println(DetectAuthResponse.toJsonString(resp));
        } catch (TencentCloudSDKException e) {
            System.out.println(e.toString());
        }
    }
}

第六步:进入意愿核身流程

接入方服务端将 BizToken 返回给接入方小程序,然后小程序调用核身方法 startVerify 进入核身流程。

注意:wx.startVerify方法中的BizToken为第二步接口的返回结果。

// 单击某个按钮时,触发该函数
gotoVerify: function () {
    // 去接入方服务端调用DetectAuth接口获取BizToken,需要接入方服务端自行实现
    let BizToken = getBizToken();
    // 调用实名核身功能
    wx.startVerify({
        data: {
            token: BizToken // BizToken
        },
        success: (res) => { // 验证成功后触发
            // res 包含验证成功的token
        },
        fail: (err) => {  // 验证失败时触发
            // err 包含错误码,错误信息
        }
    });
}

第七步:后端接入腾讯云AI 获取意愿核身结果接口

调用腾讯云AI 意愿核身 获取意愿核身结果接口 ,拉取意愿核身结果。

小程序在完成意愿核身之后,回调我们的后台,我们的后台通过获取意愿核身结果接口和第二步生成的BizToken,去腾讯云AI 意愿核身后台拉去用户意愿核身结果。下面的SecretId和SecretKey在准备接入的第五步就可以拿到了。

腾讯云AI 意愿核身提供了多种主流语言接入,包含Java、Python、Go等,我们使用的是Java语言,就以Java为例:

import com.tencentcloudapi.common.Credential;
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.*;

public class GetDetectInfoEnhanced
{
    public static void main(String [] args) {
        try{
            // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密
            // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取
            Credential cred = new Credential("SecretId", "SecretKey");
            // 实例化一个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对象
            GetDetectInfoEnhancedRequest req = new GetDetectInfoEnhancedRequest();
            
            // 返回的resp是一个GetDetectInfoEnhancedResponse的实例,与请求对象对应
            GetDetectInfoEnhancedResponse resp = client.GetDetectInfoEnhanced(req);
            // 输出json格式的字符串回包
            System.out.println(GetDetectInfoEnhancedResponse.toJsonString(resp));
        } catch (TencentCloudSDKException e) {
            System.out.println(e.toString());
        }
    }
}

3. 意愿核身效果展示

下面就是我们接入意愿核身的效果展示了,效果还是很不错的。

4. 查询调用量

打开腾讯云AI 人脸核身的控制台,点击计费统计,就可以看到意愿核身的计费量情况。

通过权限管理模块,主账号可以向子账号授权,被授权的子账号就可以看见所有子账号的调用情况。

了解更多腾讯云AI意愿核身产品信息:人脸核身_身份认证__实名认证_实人认证-腾讯云

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

推荐阅读

  • 面向面试编程连载(二)

    <font color = red>索引是为了加速对表中数据行的检索而创建的一种分散的存储结构</font>

    疯狂的KK
    编程算法HashMapSpring
  • 【ES三周年】Elasticsearch调优

    最近一直在着手优化公司某些业务的大数据的查询。 数据量级大约在每天110亿个doc左右,并且通常要对最近两天的数据做一定的处理,query的响应时间比较长,因此需要优化query api响应时间。

    Steven0T
    ElasticsearchService
  • 【ES三周年】写给ES开发者的Elasticsearch入门指南

    首先,来了解一下Elasticsearch,它是一个分布式可扩展高实时的搜索和分析引擎,可以很轻松的让高量级数据具有搜索分析和探寻能力,其自身的水平伸缩性可以让数据在生产环境下具有更高价值。

    三掌柜
    大数据分布式数据库SQL存储
  • 玩转Docker | 随手记神象云账本存储独立部署

    以往随手记用户创建账本只能默认把账本数据保存在随手记的云端服务器上。不少记账用户(尤其是做生意的老板)反馈,想要对一些相对私密的记账数据存储做私有化部署,同时又不影响线上多人实时协作。

    记账达人
    DockerLinux存储
  • 大数据必知必会:Hadoop(3)集群环境安装

    bin目录下存放的是Hadoop相关的常用命令,比如操作HDFS的hdfs命令,以及hadoop、yarn等命令。

    wux-labs
    XMLHadoop大数据BashBash 指令
  • selenium源码通读·5 |webdriver/common/action_chains.py-ActionChains类分析

    虫无涯
    jQuery存储
  • Golang-map、sync.map知识点汇总

    map在go面试中几乎成了必问题了,哈哈,这里可以要把‘几乎’去掉。而且问题集中在map的底层实现,无序遍历等问题上,那么就结合map引申出一些常见的知识点汇总,当然这些都可以在网上找到一大把答案。

    小许code
    Go
  • eBPF ,让观测性走向神坛

    Hello folks,我是 Luga,今天我们来介绍一下“下一代”可观测性工具 - eBPF,作为一种强大的内核技术,eBPF 启用了全新类别的可观测性模型,除此之外, 其程序能够无缝地与各种内核关联,以收集有关正在发生的事件数据。

    Luga Lee
    KubernetesLinux
  • selenium源码通读·2 | common/exceptions.py异常类

    虫无涯
    网络安全PHP
  • 大数据NiFi(十五):NiFi入门案例二

    需求:随机生成一些测试数据集,对生成的数据进行正则匹配,对匹配后的数据进行输出到外部文件中。以上需要用到的“GenerateFlowFile”、“ReplaceText”、“PutFile”处理器。

    Lansonli
    正则表达式RegExJavaScript

扫码关注腾讯云开发者

领取腾讯云代金券