伙伴云客服论坛»论坛 S区 S零代码 查看内容

0 评论

0 收藏

分享

uniapp 腾讯云活体人脸核身(超详细)

第一步(准备)

1.申请腾讯云效劳,去申请
2.申请通过后,在控制台创建应用,去控制台
3.licence,最后调用SDK时需要用到,添加官方技术人员微信(vx:faceid001)索要
第二步(获取AccessToken

官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/OAuth2/access_token
需要的参数
  1. app_id:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
  2. secret:wbappid 对应的密钥,申请 wbappid 时得到,可参考 获取 WBappid 指引在人脸核身控制台内申请
  3. grant_type:受权类型,默认值为:client_credential(必需小写)
  4. version:版本号,默认值为:1.0.0
复制代码
app_id,去获取
secret,去获取
grant_type,固定值,写死就行,写死的值为,‘client_credential’
version,固定值写死就行,写死的值为,‘1.0.0’
实例:
  1. let _this =this
  2. uni.request({
  3.                 url:'https://idasc.webank.com/api/oauth2/access_token',
  4.                 data:{
  5.                         app_id: _this.app_id,
  6.                         secret: _this.secret,
  7.                         grant_type:'client_credential',
  8.                         version:'1.0.0'},success(res){
  9.                         _this.access_token = res.data.access_token;
  10.                         console.log(res.data);
  11.                         console.log('access_token:'+ _this.access_token);},fail(e){
  12.                                 console.log(e);},complete(){}});
复制代码
第三步 用AccessToken,获取‘SIGN类型的’tickets

官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket
需要的参数
  1. app_id:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
  2. access_token,请根据 获取 Access Token 指引停止获取
  3. grant_type:受权类型,默认值为:client_credential(必需小写)
  4. version:版本号,默认值为:1.0.0
  5. type:'NONCE'
复制代码
app_id,去获取
access_token,第一步获取的access_token,
type,固定值,写死就行,写死的值为,‘SIGN’
version,固定值写死就行,写死的值为,‘1.0.0’
  1. let _this =this
  2. uni.request({
  3.                                 url:'https://idasc.webank.com/api/oauth2/api_ticket',
  4.                                 data:{
  5.                                         app_id: _this.app_id,
  6.                                         access_token: _this.access_token,
  7.                                         type:'NONCE',
  8.                                         version: _this.version,
  9.                                         user_id: _this.userId
  10.                                 },success(res){
  11.                                         _this.showToast(res.data);
  12.                                         _this.SIGNticket = res.data.tickets[0].value;
  13.                                         console.log('ticket:'+ _this.SIGNticket);},fail(e){
  14.                                         console.log(e);
  15.                                         _this.showToast(e.code);},complete(){
  16.                                         uni.hideLoading();}});
复制代码
第四步 用‘SIGN类型的’tickets获取签名,需要走后端接口(让你家后端写个接口吧)

官方文档
需要的参数
wbappid:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
ticket:‘SIGN类型的’tickets
nonce:必需是32位随机数
version:版本号,默认值为:1.0.0
userId:用户唯一标识,可以用身份证号,也可以用用户id,唯一就才可以(32位以内,不包含特殊字符)
后端代码
第五步,通过你走后端接口获取的签名,来获取faceld

官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/server/getfaceid?orderNo=xxx
需要的参数
webankAppId:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
orderNo:订单号,字母/数字组成的字符串,由合作方上送,每次唯一,不能超越32位
name:姓名
idNo:证件号
userId:用户 ID ,用户的唯一标识(不能带有特殊字符),需要跟生成签名的 userId 坚持一致
version:默认参数值为:1.0.0
sign:你走后端接口获取的签名
nonce:随机数,32位的
  1. let _this =this
  2. uni.request({
  3.                                 url:'https://idasc.webank.com/api/server/getfaceid',
  4.                                 method:'POST',
  5.                                 data:{
  6.                                         webankAppId: _this.app_id,
  7.                                         orderNo: _this.orderNo,//订单号,由合作方上送,每次唯一,不能超越32位
  8.                                         name: _this.idCardInfo.name,//姓名
  9.                                         idNo: _this.idCardInfo.cardNum,//证件号码
  10.                                         userId: _this.userId,//用户 ID ,用户的唯一标识(不能带有特殊字符)
  11.                                         sourcePhotoStr:'',//比对源照片,注意:原始图片不能超越500KB,且必需为 JPG 或 PNG 格式;参数有值:使合作伙伴提供的比对源照片停止比对,必需注照片是正脸可信照片,照片质量由合作方保证;参数为空 :根据身份证号+姓名使用权威数据源比对
  12.                                         sourcePhotoType:'2',//比对源照片类型,注意: 如合作方上送比对源则必传,使用权威数据源可不传;参数值为1:水纹正脸照;参数值为2:高清正脸照
  13.                                         version: _this.version,//默认参数值为:1.0.0
  14.                                         sign: _this.sign,//签名:使用上文 生成的签名
  15.                                         nonce:—_this.nonce //随机数,32位的},success(res){
  16.                                         _this.faceId = res.data.result.faceId;
  17.                                         console.log(res.data);},fail(e){
  18.                                         console.log(e);},complete(){}});
复制代码
第六步 用AccessToken 获取‘NONCE类型的’ ticket(第七步获取签名用的)

官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket
需要的参数
app_id,去获取
access_token,第一步获取的access_token,
type,固定值,写死就行,写死的值为,‘SIGN’
version,固定值写死就行,写死的值为,‘1.0.0’
user_id:当前使用用户的唯一标识,需合作伙伴自行定义,不要带有特殊字符
  1. let _this =this
  2. uni.request({
  3.                                 url:'https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket',
  4.                                 data:{
  5.                                         app_id: _this.app_id,
  6.                                         access_token: _this.access_token,
  7.                                         type:'NONCE',
  8.                                         version: _this.version,
  9.                                         user_id: _this.userId
  10.                                 },success(res){
  11.                                         _this.showToast(res.data);
  12.                                         _this.SIGNticket = res.data.tickets[0].value;
  13.                                         console.log('ticket:'+ _this.NONCEticket);},fail(e){
  14.                                         console.log(e);
  15.                                         _this.showToast(e.code);},complete(){
  16.                                         uni.hideLoading();}});
复制代码
第七步 获取调用SDK的签名,和第四步走同一个接口,但是传参的值不一样

官方文档
这个ticket的值是第六步的NONCE类型的
第八步 调用SDK,就是直接翻开人脸核身

需要的参数
webankAppId: _this.app_id,
orderNo: _this.orderNo, //订单号,由合作方上送,每次唯一,不能超越32位
name: _this.idCardInfo.name, //姓名
idNo: _this.idCardInfo.cardNum, //证件号码
userId: _this.userId, //用户 ID ,用户的唯一标识(不能带有特殊字符)
sourcePhotoStr: ‘’, //比对源照片,注意:原始图片不能超越500KB,且必需为 JPG 或 PNG 格式;参数有值:使合作伙伴提供的比对源照片停止比对,必需注照片是正脸可信照片,照片质量由合作方保证;参数为空 :根据身份证号+姓名使用权威数据源比对
sourcePhotoType: ‘2’, //比对源照片类型,注意: 如合作方上送比对源则必传,使用权威数据源可不传;参数值为1:水纹正脸照;参数值为2:高清正脸照
version: _this.version, //默认参数值为:1.0.0
sign: _this.sign //签名:使用上文 生成的签名
  1. uni.request({
  2.                                 url:'https://idasc.webank.com/api/server/getfaceid',
  3.                                 method:'POST',
  4.                                 data:{
  5.                                         webankAppId: _this.app_id,
  6.                                         orderNo: _this.orderNo,//订单号,由合作方上送,每次唯一,不能超越32位
  7.                                         name: _this.idCardInfo.name,//姓名
  8.                                         idNo: _this.idCardInfo.cardNum,//证件号码
  9.                                         userId: _this.userId,//用户 ID ,用户的唯一标识(不能带有特殊字符)
  10.                                         sourcePhotoStr:'',//比对源照片,注意:原始图片不能超越500KB,且必需为 JPG 或 PNG 格式;参数有值:使合作伙伴提供的比对源照片停止比对,必需注照片是正脸可信照片,照片质量由合作方保证;参数为空 :根据身份证号+姓名使用权威数据源比对
  11.                                         sourcePhotoType:'2',//比对源照片类型,注意: 如合作方上送比对源则必传,使用权威数据源可不传;参数值为1:水纹正脸照;参数值为2:高清正脸照
  12.                                         version: _this.version,//默认参数值为:1.0.0
  13.                                         sign: _this.sign //签名:使用上文 生成的签名},success(res){
  14.                                         _this.faceId = res.data.result.faceId;
  15.                                         console.log(res.data);},fail(e){
  16.                                         console.log(e);},complete(){}});
复制代码
完善了修车码农的部分步骤,我是问了腾讯云的技术效劳才找到问题所在的

回复

举报 使用道具

相关帖子
全部回复
暂无回帖,快来参与回复吧
本版积分规则 高级模式
B Color Image Link Quote Code Smilies

萌晓许
注册会员
主题 22
回复 14
粉丝 0
|网站地图
快速回复 返回顶部 返回列表