第一步(准备)
1.申请腾讯云效劳,去申请
2.申请通过后,在控制台创建应用,去控制台
3.licence,最后调用SDK时需要用到,添加官方技术人员微信(vx:faceid001)索要
第二步(获取AccessToken)
官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/OAuth2/access_token
需要的参数- app_id:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
- secret:wbappid 对应的密钥,申请 wbappid 时得到,可参考 获取 WBappid 指引在人脸核身控制台内申请
- grant_type:受权类型,默认值为:client_credential(必需小写)
- version:版本号,默认值为:1.0.0
复制代码 app_id,去获取
secret,去获取
grant_type,固定值,写死就行,写死的值为,‘client_credential’
version,固定值写死就行,写死的值为,‘1.0.0’
实例:- let _this =this
- uni.request({
- url:'https://idasc.webank.com/api/oauth2/access_token',
- data:{
- app_id: _this.app_id,
- secret: _this.secret,
- grant_type:'client_credential',
- version:'1.0.0'},success(res){
- _this.access_token = res.data.access_token;
- console.log(res.data);
- console.log('access_token:'+ _this.access_token);},fail(e){
- console.log(e);},complete(){}});
复制代码 第三步 用AccessToken,获取‘SIGN类型的’tickets
官方文档
恳求 URL:https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket
需要的参数- app_id:业务流程唯一标识,即 wbappid,可参考 获取 WBappid 指引在人脸核身控制台内申请
- access_token,请根据 获取 Access Token 指引停止获取
- grant_type:受权类型,默认值为:client_credential(必需小写)
- version:版本号,默认值为:1.0.0
- type:'NONCE'
复制代码 app_id,去获取
access_token,第一步获取的access_token,
type,固定值,写死就行,写死的值为,‘SIGN’
version,固定值写死就行,写死的值为,‘1.0.0’- let _this =this
- uni.request({
- url:'https://idasc.webank.com/api/oauth2/api_ticket',
- data:{
- app_id: _this.app_id,
- access_token: _this.access_token,
- type:'NONCE',
- version: _this.version,
- user_id: _this.userId
- },success(res){
- _this.showToast(res.data);
- _this.SIGNticket = res.data.tickets[0].value;
- console.log('ticket:'+ _this.SIGNticket);},fail(e){
- console.log(e);
- _this.showToast(e.code);},complete(){
- 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位的- let _this =this
- uni.request({
- url:'https://idasc.webank.com/api/server/getfaceid',
- method:'POST',
- data:{
- 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,//签名:使用上文 生成的签名
- nonce:—_this.nonce //随机数,32位的},success(res){
- _this.faceId = res.data.result.faceId;
- console.log(res.data);},fail(e){
- 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:当前使用用户的唯一标识,需合作伙伴自行定义,不要带有特殊字符- let _this =this
- uni.request({
- url:'https://miniprogram-kyc.tencentcloudapi.com/api/oauth2/api_ticket',
- data:{
- app_id: _this.app_id,
- access_token: _this.access_token,
- type:'NONCE',
- version: _this.version,
- user_id: _this.userId
- },success(res){
- _this.showToast(res.data);
- _this.SIGNticket = res.data.tickets[0].value;
- console.log('ticket:'+ _this.NONCEticket);},fail(e){
- console.log(e);
- _this.showToast(e.code);},complete(){
- 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 //签名:使用上文 生成的签名- uni.request({
- url:'https://idasc.webank.com/api/server/getfaceid',
- method:'POST',
- data:{
- 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 //签名:使用上文 生成的签名},success(res){
- _this.faceId = res.data.result.faceId;
- console.log(res.data);},fail(e){
- console.log(e);},complete(){}});
复制代码完善了修车码农的部分步骤,我是问了腾讯云的技术效劳才找到问题所在的
|