前言
回顾2020年,最有意思的事情就是用微信小程序实现了人脸识别认证功能,期间也遇到一些问题。希望通过本文让大家了解在微信小程序中如何实现人脸识别认证功能以及如何解决遇到的问题。
一、开发准备
1、前提条件
目前微信小程序人脸识别接口(微信开放社区对其定义为 “微信人脸核身接口能力”)只对特定的主体及类目的小程序开放,详见 微信人脸核身接口能力
笔者使用的微信小程序主体类目为医疗,因此能申请该权限。
2、步骤及流程
根据 微信人脸核身接口能力文档介绍,申请接口权限的步骤及流程如下:
由于笔者使用的微信小程序已经接入了微信电子健康卡开放平台,故不用发送邮件申请,可以直接在开放平台的“小程序人脸识别申请”菜单中申请开通接口权限,如下图所示:
审核通过后,使用微信小程序账号登录微信公众平台,在“开发管理”—“接口设置”中添加人脸识别身份验证接口类目,如下图所示:
二、开始开发
1、小程序客户端
由于笔者希望在小程序的web-view组件的H5页面中调用小程序页面的人脸识别功能,故单独新建了一个页面wxfacialverify,在js的onLoad方法中接收H5传过来的参数,然后调用人脸识别接口。wxfacialverify.js代码如下:
Page({
data: {
faceCheckData:{
},
},
onLoad: function (options) {
var that = this;
//页面加载调取人脸识别接口(原则上应该对options的携带的参数进行校验)
that.facialRecognitionVerify(options);
},
facialRecognitionVerify: function (faceCheckData) {
wx.startFacialRecognitionVerify({
name: faceCheckData.name,//姓名
idCardNumber: faceCheckData.idCardNumber, //身份证号
//人脸识别成功回调通知
success (res) {
var verifyResult = res.verifyResult;
wx.request({
url: '/faceCheck/faceCheck.htm?action=faceIdentifyCheck',
data: {
'name':faceCheckData.name,'idCardNumber':faceCheckData.idCardNumber,
'verifyResult ':verifyResult
},
header: {
'content-type': 'application/json'
},
success (res) {
console.log(res.data)
}
})
},
//人脸识别失败的回调通知