uniapp App端实人认证
1、充点钱,因为调一次要8毛多
2、右键项目,创建unicloud云开发环境
3、创建一个文件夹,名称随便 uni-cloud-verify
4、右键文件夹,管理云函数的扩展库/公共模块依赖
点这个,然后确认
5、配置manifest.json里面App模块配置打开实人认证,然后打自定义基座包
6、正在打包 loading.................
7、去uni-cloud-verify文件里面新建index.obj.js(云对象)
8、编辑index.obj.js,差多就下面这样
// callFunction 'use strict'; module.exports = { // __before调用其他方法前会先调用这个方法 _before(context) { // 创建实人认证实例 this.frvManager = uniCloud.getFacialRecognitionVerifyManager({ requestId: this.getUniCloudRequestId() }) }, /** * 获取certifyId * @param realName 姓名 * @param idCard 身份证号 * @param metaInfo uni.getFacialRecognitionMetaInfo()获取的 */ async getCertifyId({ realName, idCard, metaInfo }) { // 会先调用_before try { const result = await this.frvManager.getCertifyId({ realName, idCard, metaInfo }); return result } catch (e) { return { errCode: 500, message: '获取CertifyId失败' }; } }, /** * 获取认证的结果 */ async getAuthResult(certifyId) { try { const result = await this.frvManager.getAuthResult({ certifyId }); return result } catch (e) { return { errCode: 500, message: '获取认证失败' }; } } }
9、这样云函数(云对象就OK了)
10、去vue页面写个方法使用
这个是我写的逻辑,就是吧realName,idCard,传进去
export async function uniCloudVerifyFunction({ realName, idCard }) { // 获取设备信息 const metaInfo = uni.getFacialRecognitionMetaInfo(); // 注册实人认证 const uniCloudVerify = uniCloud.importObject('uni-cloud-verify'); // 获取CertifyId const certifyidResult = await uniCloudVerify.getCertifyId({ realName, idCard, metaInfo }) if (certifyidResult.errCode != 0) return Promise.reject({ code: 500, msg: '获取certifyid失败,请联系管理员处理!' }) const certifyId = certifyidResult.certifyId; // 开始认证 const startFacialRecognitionVerify = (certifyId) => { return new Promise((resolve, reject) => { uni.startFacialRecognitionVerify({ certifyId: certifyId, success: async res => { const result = await uniCloudVerify.getAuthResult(res.certifyId); resolve(res); }, fail: err => { // 验证失败,要扣钱的,certifyId已失效 // err.errCode == '10013' // 验证中断,不扣钱 // err.errCode == '10011' reject({ code: err.errCode, msg: err.errMsg }) } }); }) } // 开始认证 try { const facialRecognitionVerifyValue = await startFacialRecognitionVerify(certifyId); } catch (e) { return Promise.reject(e); } // 获取结果 const authResult = await uniCloudVerify.getAuthResult(certifyId); if (authResult.errCode != 0) return Promise.reject({ code: 500, msg: '获取认证信息失败,请联系管理员处理!' }); console.log(authResult, '认证后数据') return Promise.resolve(authResult); }
11、使用 完成
uniCloudVerify({ realName, idCard }).then(res => { // 提示成功 }).catch(() => { // 提示失败 })
12、顺便记一下云函数,云对象的使用
// uni-cloud-verify这个就是文件夹的名称 const uniCloudVerify = uniCloud.importObject('uni-cloud-verify') // 然后就可以使用云对象的方法了 uniCloudVerify.xxx() // 云函数呢就一个方法 uniCloud.callFunction({ name: 'uni-cloud-verify', data: {} })