人脸识别申请流程
1 能力背景
- 调用人脸核身的小程序 其主体以及类目需要在限定的类目范围内,且与小程序的业务背景一致。
应用:光大银行的人脸识别 -> 金融-银行
2 准备接入
- 申请邮件发送 参考"微信人脸核身接口能力"
- 开通权限后,在"开发-接口设置"中,添加可用类目开通接口
3 接口文档
wx.startFacialRecognitionVerify(OBJECT)
- 功能:请求进行基于生物识别的人脸核身
- 验证方式:在线验证--读数字 屏幕闪烁
/**
* return 值
* errMsg: String 错误信息
* errCode:Number 错误码
* verifyResult: String 本次认证结果凭证
*/
wx.startFacialRecognitionVerify({
name: String, // 必填
idCardNumber: String, // 必填
success: Function,
fail: Function,
complete: Function, // 必填
// 0-读数字 1- 反光 2-检查是否支持反光
checkAliveType: Number
})
4 应用
export function startFacialRecognitionVerify(data,callBack) {
let mune = {
10001: \'参数错误\',
10002: \'人脸特征检测失败\',
10003: \'身份证号不匹配\',
10004: \'比对人脸信息不匹配\',
10005: \'环境光线太亮\',
10006: \'appid没有权限(后台验证部分)\',
10007: \'后台获取图片失败\',
10008: \'比对系统失败\',
10009: \'未查到身份证照片比对源\',
10010: \'照片质量不满足比对要求\',
10015: \'比对服务暂时不可用\',
10016: \'存储用户图片失败\',
10017: \'非法identify_id\',
10018: \'用户信息不存在\',
10020: \'认证超时\',
10022: \'重复的请求,返回上一次的结果\',
10026: \'用户身份证数据不在比对数据库中\',
10027: \'语音识别失败\',
10028: \'唇动检测失败\',
10031: \'公众号/小程序没有设置昵称\',
10040: \'请求数据编码不对,必须是UTF8编码\',
10041: \'非法user_id_key\',
10042: \'请求过于频繁,稍后再重试\',
10045: \'系统失败\',
10052: \'请求数超限制\',
10057: \'请求数超限制\',
10066: \'人脸流水号bioid重复\',
10069: \'活体检测暂时不可用\',
90100: \'用户取消\',
90101: \'用户未授权\',
90102: \'底层库出错\',
90103: \'CDN上传出错\',
90104: \'获取配置信息出错\',
90105: \'获取确认页信息失败\',
90106: \'相机初始化失败\',
90107: \'用户采集人脸超时\',
90108: \'用户采集过程中抖动太剧烈\',
90109: \'设备不支持人脸采集\',
90199: \'未知错误\',
}
// 检查是否支持反光 -- 支持则使用反光 不支持则调用微信自带判断
wx.checkIsSupportFacialRecognition({
checkAliveType: 1,
success:function(res) {
if(res.errcode == 0 || res.errMsg == \'checkIsSupportFacialRecognition:ok\') {
let cb = {
...data,
success(){
callBack("人脸识别成功",true)
},
fail(res){
let msg = res.errMsg
if(res.errCode) {
let tip = mune[res.errCode];
msg = `人脸核身失败(${tip}),请稍后重试`
}
callBack(msg,false)
}
}
wx.startFacialRecognitionVerifyAndUploadVideo(cb)
return
} else {
data.checkAliveType = 2
let cb = {
...data,
success(){
callBack("人脸识别成功",true)
},
fail(res){
let msg = res.errMsg
if(res.errCode) {
let tip = mune[res.errCode];
msg = `人脸核身失败(${tip}),请稍后重试`
}
callBack(msg,false)
}
}
wx.startFacialRecognitionVerifyAndUploadVideo(cb)
return
}
},
fail: res => {
wx.showToast(\'微信版本过低\')
}
})
}