无需证书微信小程序实现人脸识别—E证通

前言

微信小程序自开发人脸识别,有很大的限制,主要在于公司资质。
有没有不用资质就接入人脸识别,有的,腾讯E证通,该服务目前只向已完成企业实名认证的腾讯云用户开放,使用E证通服务前需要您注册腾讯云账号并完成企业实名认证。

收费标准

E证通属于第三方插件,因此有收费,个人觉得价格适中吧
在这里插入图片描述

接入准备

先开通腾讯云 => 实名认证 => 开通E站通 => 下载前端包
他分别有小程序接入和H5接入,目前我使用的是小程序接入

小程序

1、 添加服务器域名白名单

做过小程序都知道,在微信公众平台里面新增服务器白名单

eid.faceid.qq.com

2、添加业务域名白名单

上面的地址,也放在业务白名单里

eid.faceid.qq.com

3、安装 SDK/小程序包

在 控制台商户 ID 列表页 可以下载E证通小程序 SDK。
SDK包内容如下
在这里插入图片描述

4、SDK 调用步骤即实操代码

4.1、初始化 SDK

  • 在 app.js 文件中引入初始化 SDK 的方法 initEid。
  • 在 App.js 的 onLaunch() 中加入相应代码,在 App.json 文件里添加E证通 SDK 页面。
  • 在 onLaunch 方法中调用 initEid。
//app.js
    import { initEid } from './mp_ecard_sdk/main';

    App({
        onLaunch() {
            initEid();
        },
    });

    // app.json
    {
        "pages":[
            "mp_ecard_sdk/index/index",
            "mp_ecard_sdk/protocol/service/index",
            "mp_ecard_sdk/protocol/privacy/index",
            "mp_ecard_sdk/protocol/userAccredit/index",
            "mp_ecard_sdk/protocol/eid/index",
        ]
    }

4.2、 调用 SDK

  • 在需要进行核身的地方引入调用 SDK 的方法 startEid。
  • 在业务需要的时机触发 startEid。
import { startEid } from './mp_ecard_sdk/main';

    // 示例方法
    goSDK(token) {
        startEid({
            data: {
                token,
            },
            verifyDoneCallback(res) {  
                const { token, verifyDone } = res;
                console.log('收到核身完成的res:', res);
                console.log('核身的token是:', token); 
                console.log('是否完成核身:', verifyDone);          
            },
        });
    },

5、拿到回调结果

// app.js
onShow: (options) => {	
	const { referrerInfo, scene } = options;
	/* 判断是否从eID数字身份小程序返回 */
	const { appId } = referrerInfo;
	if (scene === 1038 && appId === 'wx0e2cb0b052a91c92') {
		console.log(referrerInfo.extraData.token,"人脸回调的token")
		let resutl,editoken
		if(referrerInfo.extraData.token){
			//人脸识别成功
			resutl = 'SUCCESS'
			editoken = referrerInfo.extraData.token
		}else{
			//失败
			resutl = 'FAIL'
			editoken = ''
		}
		//不知道为什么不触发
		// uni.navigateTo({
		// 	url:`/pages/book/registerSuccess?token=${editoken}&resutl=${resutl}`,
		// })
		store.commit('SET_FACEINFO', {editoken,resutl})
		console.log("跳转")
		
		return
	} else {
		// 执行接入方小程序原本的逻辑
	}
	console.log('App Show')
},

6、使用uni-app开发

E证通目前没有接入uni,因此我们使用uni-app开发时,只能转换一下思路了,目前有两种实现方式

6.1、小程序运行后,在小程序中丢入sdk包

在小程序运行后,我们在微信开发者工具中,找到资源管理器,在根目录中丢入SDK包
在这里插入图片描述

缺点:无法git或者svn管理

6.2、把sdk包转换成uni-app代码

通过查看sdk包,我们可以清楚的发现他就微信小程序的一些页面和js,
我是通过miniprogram-to-uniapp来把原生小程序转换成uni-app代码包
转换效果如下:
在这里插入图片描述

缺点:转换后,uni不支持小程序的一些原生方法,导致需要人工转换,比如this.setData(),此方法在uni-app中就不支持

7、效果

在这里插入图片描述

在这里插入图片描述

相关文章

uni-app 人脸识别分析及实现(前端) + nvue开发源码

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

荒男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值