# 微信服务号人脸核身2.0
本接口适用于:需要进行微信人脸核身比对,并获取用户人脸核验结果的服务号业务方。
# 一、能力介绍
近年来,国家在医疗挂号、APP注册、快递收寄、客运、运营商等多领域规定,需要用户实名才可办理业务,预计后续也会有越来越多的此类法规。因此,微信参照公安部“互联网+”可信身份认证服务平台标准,依托腾讯公司及微信的生物识别技术,建立微信“实名实人信息校验能力” ,即通过人脸识别+权威源比对,校验用户实名信息和本人操作(简称微信人脸核身)。
目前该能力限定主体及行业类目开放公测,提供给资质符合要求的业务方,在合适的业务场景内使用。目前仅支持持二代身份证的大陆居民。
由于微信人脸核身能力涉及到用户的敏感、隐私信息,因此该能力的服务号,需要满足一定的条件。即:服务号的主体以及类目,需要在限定的类目范围内,且与服务号的业务场景一致。开展的业务也需要是国家相关法规、政策规定的需要“实名办理”的相关业务,其他未在范围内的业务,则暂不支持。
微信人脸核身能力针对服务号开放的主体类目范围如下:
| 服务号一级目 | 服务号二级类目 | 服务号号三级类目 | 使用微信人脸核身能力所需资质 |
|---|---|---|---|
| 教育 | 教育服务(公立学校) | / | 公立学校:由教育行政部门出具的审批设立证明 或 《事业单位法人证书》 |
| 医疗 | 公立医疗机构 | / | 《医疗机构执业许可证》与《事业单位法人证书》 |
| 政务民生 | 所有二级类目 | / | 仅支持政府/事业单位,提供《组织机构代码证》或《统一社会信用代码证》 |
微信人脸核身用户端表现示例图如下:
# 二、权限申请
请注意: 若服务号开发者此前已获得微信人脸核身接口权限,则无需重复申请,直接按照本文第三章进行微信人脸核身2.0接口调用即可。
服务号申请微信人脸核身2.0权限,请先确认是否符合本文第一章中开放的主体类目范畴,若确认接入,可按照如下格式要求发送邮件至 wx_city@tencent.com ,我们将在7个工作日内进行回复。
邮件格式如下:
邮件主题: 申请开通“服务号微信人脸核身2.0"+单位/公司主体名称+申请的服务号appid
邮件正文:
1)申请微信服务号人脸核身2.0接口资料
| 序号 | 信息概述 | 具体信息内容 |
|---|---|---|
| 1 | 业务方名称 | 请填写 |
| 2 | 使用该接口的场景和用途 | 请填写 |
| 3 | 使用该接口的正式服务号昵称 | 请填写 |
| 使用该接口的的正式服务号appid | 请填写 | |
| 4 | 使用该接口的测试服务号昵称 | 选填 |
| 使用该接口的测试服务号appid | 选填 | |
| 5 | 日均调用量预估 | 请填写 |
| 6 | 最高并发调用量预估 | 请填写 |
| 7 | 日并发调用量均值预估 | 请填写 |
| 8 | 业务方产品联系人姓名、手机号码、邮箱 | 请填写 |
| 9 | 业务方开发联系人姓名、手机号码、邮箱 | 请填写 |
| 10 | 腾讯公司接口人姓名、邮箱 | 选填 |
2)申请微信服务号人脸核身2.0所需的主体相关资质,具体参照第一章关于“服务号开放的主体类目范围”中资质的描述。
# 三、开发流程
# 3.1 时序图
# 3.2 开发流程
# 1)微信 JS-SDK 接入
请先参考微信网页开发文档接入微信 JS-SDK 库,注意应该为 1.6.3 版本。
# 2)检查设备是否支持人脸识别能力
服务号调用 checkIsSupportFaceDetect 接口可以检测当前手机设备是否支持人脸识别能力,建议调用后对手机设备不支持的用户做对应功能处理。
# 3)服务号后台根据用户实名信息调用微信后台接口获取人脸核身会话唯一标识
服务号后台需要根据「用户实名信息(姓名+身份证)」调用微信后台 getVerifyId 接口获取人脸核身会话唯一标识 verifyId 字段,然后给到服务号前端调用 wx.requestFacialVerify 接口使用。
# 4)服务号前端调用微信人脸核身接口进行人脸识别
从服务号后台拿到人脸核身会话唯一标识 verifyId 字段后,服务号前端调用 wx.requestFacialVerify 接口,对用户进行基于生物识别的人脸核身验证。
# 5)服务号后台根据人脸核身会话唯一标识进行用户实名信息校验
服务号前端调用 wx.requestFacialVerify 接口完成人脸核身请求后,需要通知服务号后台根据本次人脸核身会话唯一标识 verifyId 字段调用微信后台 queryVerifyInfo 接口查询人脸核身真实验证结果。
请注意:为保障业务可用性和安全性,务必调用 queryVerifyInfo 接口,查询用户人脸核身真实验证结果。
# 6)示例代码
// 初始化 JS-SDK
wx.config({
debug: true, // 开启调试模式
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: ['checkIsSupportFaceDetect', 'requestFacialVerify'] // 必填,需要使用的JS接口列表
});
wx.ready(function () {
// 检查设备是否支持人脸识别能力
wx.invoke('checkIsSupportFaceDetect', {}, function(res) {
if (res.errCode == 0) {
// 支持人脸识别
// 开发者根据需要选择是否支持该版本的人脸采集
console.log(res.lib_version_code);
// 调用微信人脸核身接口进行人脸识别
wx.requestFacialVerify({
// 人脸核身会话唯一标识(服务号后台根据「用户实名信息(姓名+身份证)」调用微信后台 getVerifyId 接口获取)
verifyId: '',
success(res) {
// 人脸核身验证成功,需要通知服务号后台根据本次人脸核身会话唯一标识 verifyId 字段调用微信后台 queryVerifyInfo 接口查询人脸核身真实验证结果。
},
fail() {
// 人脸核身验证失败
},
})
} else {
// 不支持人脸识别
console.log(res.err_msg);
}
});
});
# 四、联系我们
开发中遇到任何疑问,可以 点击此处 通过社区反馈,将有工作人员跟进回复。
此外,也可以通过工作邮箱 wx_city@tencent.com 提交关于本能力的意见与建议。