1.由于人脸核验功能涉及到用户的敏感、隐私信息,因此调用此接口的业务方,需要满足一定的条件,申请小程序的人脸识别api。开通小程序后台的接口权限入口后,开发者可以登录mp.weixin.qq.com小程序账号,在设置-接口能力中,开通接口能力。
下面看官方文档( 微信人脸核身接口能力)
https://developers.weixin.qq.com/community/business/doc/000442d352c1202bd498ecb105c00d
2.//活体检测,是否支持人脸识别
wx.checkIsSupportFacialRecognition({
checkAliveType: 2,
success: function(res) {
if (res.errCode === 0 || res.errMsg === "checkIsSupportFacialRecognition:ok") {
//调用人脸识别
_this.startface(_this.data.custName.replace(/(^\s*)|(\s*)$/g, ""), _this.data.custIdCard);//身份证名称,身份证号码
return;
}
wx.showToast('微信版本过低,暂时无法使用此功能,请升级微信最新版本')
},
fail: res => {
wx.showToast('微信版本过低,暂时无法使用此功能,请升级微信最新版本')
}
})
3.兼容版本
读数字:android 微信6.5.4及以上版本, iOS 微信6.5.6及以上版本
屏幕闪烁:android 微信6.7.2及以上版本, iOS 微信6.7.2及以上版本
开放状态:未开放
开放范围:白名单
errCode:0,识别成功。
errMsg:'startFacialRecognitionVerify:ok'
4.示例代码
/人脸识别,请求进行基于生物识别的人脸核身
startface(name, idcard) {
wx.startFacialRecognitionVerify({
name: _this.data.custName,//身份证名称
idCardNumber: _this.data.custIdCard,//身份证号码
success: function(res) {
var verifyResult = res.verifyResult;//认证结果
//调用接口
},
checkAliveType: 2,//屏幕闪烁(人脸核验的交互方式,默认0,读数字)
fail: err => {
wx.showToast('请保持光线充足,面部正对手机,且无遮挡')
}
})
},
此接口是前端完成人脸核身后,基于前端返回的凭据,通过后台api再次进行核验结果的校验、确认之用。有助于提高安全性,请接入。
1、说明
人脸核身之后,开发者可以根据jsapi返回的verify_result向后台拉取当次认证的结果信息。
2、请求URL
https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token={access_token}
3、请求方式
POST
4、请求格式
json
5、请求数据说明
参数 类型 是否必填 描述
verify_result String 是 jsapi返回的加密key(凭据)
6、请求示例
7、数据返回http头如下
8、json示例
9、返回参数说明
参数 类型 描述
errcode int 错误码, 0表示成功
errmsg string 错误信息
identify_ret int 认证结果
identify_time uint32 认证时间
validate_data string 用户读的数字(如是读数字)
openid string 用户openid
user_id_key string 用于后台交户表示用户姓名、身份证的凭证
finish_time uint32 认证结束时间
id_card_number_md5 string 身份证号的md5(最后一位X为大写)
name_utf8_md5 string 姓名MD5
10、错误码对应信息
errcode 备注
84001 非法identity_id
84002 用户信息过期
84003 用户信息不存在