微信人脸识别的使用

打开人脸识别小程序

openFace (param) {
   // 打开人脸识别小程序
   // mchid 服务商商户号	sub_mchid 子商户号	appid 服务商应用ID	sub_appid 子商户应用ID
  // openid 用户标识	token 预下单token	authenticate_number	商户单号	
   // const { mchid, sub_mchid, appid, sub_appid, openid, token, authenticate_number } = param
  // const path = `/pages/card/authen_with_auth?mchid=${mchid}&sub_mchid=${sub_mchid}&appid=${appid}&sub_appid=${sub_appid}&openid=${openid}&token=${token}&authenticate_number=${authenticate_number}`
  if (wx.navigateToMiniProgram) {
      const path = '/pages/card/authen_with_auth?mchid=123456&sub_mchid=666666&appid=wx1234567889999&sub_appid=wx1234567000000&openid=o17o88-JPyaisuNH-8RXGwcfb4zE&token=qfq-34ewq257w_1re4re&authenticate_number=abcdefghijklmn'
      wx.navigateToMiniProgram({
           appId: 'wxd24d9057cd83d47a',
           path,
           success(res) {
               // 打开成功
               console.log('succ-res', res)
           },
           fail (err) {
               // 调用失败
               console.log('err', err)
           }
       })
   } else {
       // 如果希望用户在最新版本的客户端上体验您的小程序,可以这样子提示
       wx.showModal({
           title: '提示',
           content: '当前微信版本过低,无法使用该功能,请升级到最新微信版本后重试。'
       })
   }
 }

onshow方法中监听小程序人脸识别的结果

	onShow(options) { 
      // 场景数值为1038(从其他小程序跳回),跳回的小程序appid为wxd24d9057cd83d47a
       if (options && options.scene === 1038 && options.referrerInfo && options.referrerInfo.appId === 'wxd24d9057cd83d47a') {            
           const resp = options.referrerInfo.extraData || {};  
           // msg_type 标识本次返回结果的消息类型,此处为人脸核身的消息,为: AUTHENTICATE_WITH_AUTHORIZATION
           // authorize_state授权状态,首次授权时返回:UTHORIZATION_SUCCESS:授权成功;INCONSISTENT_REAL_NAME:实名信息不一致。
           // authenticate_state 核身状态:AUTHENTICATE_SUCCESS:核身成功;VERIFY_FACE_FAILED_TOO_MANY:人脸验证失败次数过多。
           // authenticate_time 核身时间(时间戳),核身成功时返回
           const { msg_type, authenticate_state } = resp         
           if (msg_type === 'AUTHENTICATE' && authenticate_state === 'AUTHENTICATE_SUCCESS') {                
               // TODO 处理人脸核身成功返回结果      
              
           } else {
               Tip.error("人脸核身失败,请稍后再打卡")
           }
	     }   
	  }
### 实现微信人脸识别功能的关键要素 在UniApp中集成微信人脸识别API涉及几个重要方面。为了确保最佳实践并顺利实施,需注意以下几点: - **项目初始化与配置** 开发者应先创建一个新的UniApp项目或者基于现有项目进行扩展。对于特定于微信小程序的部分,需要按照官方文档完成必要的设置工作[^1]。 - **权限申请** 微信小程序要求应用在访问敏感设备和服务前获得用户的同意。因此,在启动人脸采集流程之前,程序应当请求相应的相机权限,并向用户提供清晰的操作指引说明[^2]。 - **调用人脸识别API** 可借助云函数作为中介层来安全地调用微信提供的人脸识别服务。此方式不仅提高了安全性,还便于管理密钥和其他敏感信息。具体来说,前端负责收集用户上传的照片或实时视频流帧数据;而后端则执行实际的身份验证逻辑[^3]。 - **优化用户体验** 结合上述技术手段的同时,还需关注整体交互设计的质量。比如,当提示用户授权时要保持界面友好简洁;成功识别人物后及时反馈结果给用户查看等措施均有助于提升满意度[^4]。 ```javascript // 示例代码片段展示如何发起云函数调用来处理图像 export function uploadImageAndDetectFace(imagePath) { const cloudFunctionName = 'detect_face'; return new Promise((resolve, reject) => { uniCloud.callFunction({ name: cloudFunctionName, data: { imagePath }, success(res) { resolve(res.result); }, fail(err) { reject(err); } }); }); } ``` 通过以上步骤可以有效地将微信人脸识别能力融入到UniApp构建的应用之中,从而增强其智能化水平和应用场景范围[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值