uniapp 实人认证

最下面有demo

首先Dcloud创建云服务空间,开启一键登录并充值

下一步

1. 右键项目 》 创建uniCloud云开发环境 》右键uniCloud》关联云服务空间

2. cloudfunctions右键 新建云函数,任意命名(例:veify),然后右键项目》管理公告模块或扩展库依赖》选择

在这里插入图片描述

3.点击 云函数veify》目录下的 “ index.js ” 改名 “ index.obj.js ” 否则获取不到

3.1 index.obj.js 内代码如下
'use strict';
module.exports = {// __before调用其他方法前会先调用这个方法_before(context) {// 创建实人认证实例this.frvManager = uniCloud.getFacialRecognitionVerifyManager({requestId: this.getUniCloudRequestId()})},async getCertifyId({ realName, idCard, metaInfo }) {// 会先调用_beforetry {const result = await this.frvManager.getCertifyId({ realName, idCard, metaInfo });return result} catch (e) {throw { errCode: 500, message: '获取认证失败,请检查信息的正确性' };}},// 获取认证的结果async getAuthResult(certifyId) {try {const result = await this.frvManager.getAuthResult({ certifyId });return result} catch (e) {throw { errCode: 500, message: '认证失败' };}}
}

3.2 打包自定义包测试

4.在页面上获取云函数

// 注册实人认证
// veify为云函数文件名const uniCloudVerify = uniCloud.importObject('veify');

5,封装认证代码

//点击认证
submit(){let data = {realName:this.params.realName,idCard:this.params.idNumber}this.uniCloudVerifyFunction(data).then(res => {console.log('实名认证yes',res);if(res.authState == 'SUCCESS'){//成功}// 提示成功}).catch(err => {console.log('实名认证no',err);// 提示失败})
},
//封装
async uniCloudVerifyFunction({ realName, idCard }) {// 获取设备信息const metaInfo = uni.getFacialRecognitionMetaInfo();// 获取CertifyIdconst certifyidResult = await uniCloudVerify.getCertifyId({ realName, idCard, metaInfo }) if (certifyidResult.errCode != 0) return Promise.reject({ code: 500, msg: '获取certifyid失败,请联系管理员处理!' })const certifyId = certifyidResult.certifyId;// 开始认证return new Promise((resolve, reject) => {uni.startFacialRecognitionVerify({certifyId: certifyId,success: async res => {console.log(res);const result = await uniCloudVerify.getAuthResult(certifyId);resolve(result);},fail: err => {reject({ code: err.errCode, msg: err.errMsg })}});})
}

完成

下面是我的demo,供参考

<template><view><view class="navBbutPart" ><button class="butsty font30" hover-class="butstyHover" @click="$u.throttle(submit, 1000)"> 人脸验证 </button></view></view>
</template><script>import { accountAuthenticationedit,accountAuthenticationadd } from "@/api/all.js"// 注册实人认证const uniCloudVerify = uniCloud.importObject('veify');export default {name:"getBack",props:{params:{},//是否修改edit:{default:false}},data() {return {};},onLoad() {// console.log(uni.getFacialRecognitionMetaInfo());},methods:{async uniCloudVerifyFunction({ realName, idCard }) {// 获取设备信息const metaInfo = uni.getFacialRecognitionMetaInfo();// 获取CertifyIdconst certifyidResult = await uniCloudVerify.getCertifyId({ realName, idCard, metaInfo }) if (certifyidResult.errCode != 0) return Promise.reject({ code: 500, msg: '获取certifyid失败,请联系管理员处理!' })const certifyId = certifyidResult.certifyId;// 开始认证return new Promise((resolve, reject) => {uni.startFacialRecognitionVerify({certifyId: certifyId,success: async res => {console.log(res);const result = await uniCloudVerify.getAuthResult(certifyId);resolve(result);},fail: err => {reject({ code: err.errCode, msg: err.errMsg })}});})},submit(){let data = {realName:this.params.realName,idCard:this.params.idNumber}this.uniCloudVerifyFunction(data).then(res => {console.log('实名认证yes',res);if(res.authState == 'SUCCESS'){if(!this.edit){accountAuthenticationadd(this.params).then(resapi=>{console.log('实名认证接口',resapi);this.com.back()//返回})}else{accountAuthenticationedit(this.params).then(resapi=>{this.com.back()})}}// 提示成功}).catch(err => {console.log('实名认证no',err);// 提示失败})}}}
</script><style scoped lang="scss">
.navBbutPart{width: 90%;position: fixed;bottom: 200rpx;padding: 0 5%;button{border-radius: 50rpx;}}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/362382.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

elasticsearch重置密码

0 案例背景 Elasticsearch三台集群环境&#xff0c;对外端口为6200&#xff0c;忘记elasticsearch密码&#xff0c;进行重置操作 注&#xff1a;若无特殊说明&#xff0c;三台服务器均需进行处理操作 1 停止es /rpa/bin/elasticsearch.sh stop 检查状态 ps -ef|grep elast…

【Linux】ss 命令使用详解

目录 一、ss命令介绍 二、ss命令格式和使用 1、命令格式 2、ss命令的常用选项 3、命令的常见用法 3.1 找出打开套接字/端口应用程序 3.2 检查系统的监听套接字 3.3 显示所有状态为established的SMTP连接 3.4 查看建立的 TCP 连接 3.5 通过 -r 选项解析 IP 和端口号 …

UI(三)布局

文章目录 1、Colum和Row——垂直方向容器和水平方向容器2、ColumnSplit和RowSplit——子组件之间插入一条分割线3、Flex——弹性布局子组件的容器4、Grid和GridItem——网格容器和网格容器单元格5、GridRow和GridCol——栅格容器组件和栅格子组件6、List、ListItem、ListItemGr…

Mac OS 安装frida

安装frida和frida-tools Python是基础&#xff0c;提前装好Python 终端执行 python3 -m pip install frida 如果出现error 按照提示处理 信息提示&#xff1a;brew install pipx 于是终端执行&#xff1a; brew install pipx 安装frida&#xff1a; pipx install frida…

华宽通中标长沙市政务共性能力建设项目,助力智慧政务建设新飞跃

在数字化浪潮的推动下&#xff0c;长沙市政府正积极拥抱智慧城市建设&#xff0c;以科技力量提升政务服务效能。华宽通凭借其卓越的技术实力与丰富的项目经验&#xff0c;成功中标长沙市政务共性能力建设项目&#xff0c;这无疑是对华宽通在智慧城市领域实力的高度认可。 华宽…

Mind+在线图形编程软件(Sractch类软件)

Scratch作为图形编程软件&#xff0c;可以为小朋友学习编程提供很好的入门&#xff0c;是初次接触编程的小朋友的首选开发软件。这里介绍的Mind软件与Sractch用法几乎完全一致&#xff0c;并且可以提供在线免安装版本使用&#xff0c;浏览器直接打开网址&#xff1a; ide.mindp…

纳米硅(SiNP)可用于制造锂离子电池 纳米硅粉为其代表产品

纳米硅&#xff08;SiNP&#xff09;可用于制造锂离子电池 纳米硅粉为其代表产品 纳米硅&#xff08;SiNP&#xff09;指尺寸在纳米尺度范围内的硅颗粒。纳米硅具有光吸收谱宽、表面活性高、比表面积大、机械强度高、电学性能好等优势&#xff0c;在石油化工、建筑工程、电子电…

TypeError: %c requires int or char

踩坑&#xff1a;在用python写脚本查询sql数据时&#xff0c;使用%s来替换sql语句里的变量&#xff0c;结果一直报&#xff0c;而其他sql使用同样的方法正常&#xff0c;最后发现是因为sql语句里有模糊查询 like "%测试%"&#xff0c;这里的%被误以为%s&#xff0c;解…

PostgreSQL安装教程及文件介绍

Ubuntu 安装和配置 PostgreSQL 以 Ubuntu Server 20.04&#xff0c;PostgreSQL 12 版本为例。 1. 安装 使用如下命令&#xff0c;安装指定版本的 PostgreSQL sudo apt install postgresql-12在 Ubuntu 20.04 中安装 PostgreSQL 登录您的 Ubuntu 系统并使用以下 apt 命令更新…

ADI-DSP|在指定内存写入数据

一、LDF文件设置内存空间 user_data_test { TYPE(BW RAM) START(0x00380010) END(0x0039bfff) WIDTH(8) }//usr data dxe_user_data_bw BW{INPUT_SECTION_ALIGN(4)INPUT_SECTIONS( $OBJS_LIBS(user_data) )} > user_data_test 二、在C文件中设置数据 /************…

20240628 每日AI必读资讯

&#x1f4da; Hugging Face 推出新版开源大模型排行榜&#xff0c;中国模型 Qwen-72B 夺冠 - 阿里Qwen-2-72B指令微调版本问鼎全球开源大模型排行榜榜首 - Llama-3-70B 微调版本排名第二&#xff0c;而 Mixtral-8x22B 微调版本位居第四。 - 另外&#xff0c;微软的 Phi-3-M…

cad报错:由于找不到vcruntime140.dll无法继续执行代码

在现代的工程设计中&#xff0c;计算机辅助设计&#xff08;CAD&#xff09;软件已经成为了工程师们不可或缺的工具。然而&#xff0c;在使用CAD软件的过程中&#xff0c;有时我们会遇到一些问题&#xff0c;其中之一就是“找不到vcruntime140.dll”的错误提示。本文将详细介绍…

on ubuntu server install jupyter lab

一、安装jupyter lab conda search jupyterlab 根据base的python版本&#xff0c;选择对应的版本 conda install jupyterlab3.0.14 该方法优点是可以快速的启动JupyterLab&#xff0c;缺点是需要记住大量参数写法。以下是一些常见参数的说明&#xff1a; --ip* 设置可访问的I…

基于Flask开发的前后端交互项目(可用于期末大作业) MySQL数据库 文件上传 Spider爬虫 Echarts可视化展示 JS动态

项目描述&#xff1a; 开发一个基于Flask框架开发的前后端交互项目&#xff0c;项目内容为 东京奥运会 。对各个需要填写的字段做了数据验证&#xff0c;非法信息会被JS拦截提醒不合法&#xff1b;还对未登录就访问做了拦截&#xff0c;阻止未登录就访问。 前端&#xff1a;HT…

【数据结构】(C语言):动态数组

动态数组&#xff1a; 内存区域连续&#xff0c;即每个元素的内存地址连续。可用索引查看元素&#xff0c;数组[索引号]。指定位置删除元素&#xff0c;该位置之后的元素全部往前移动一位。指定位置添加元素&#xff0c;从最后到该位置的元素全部往后移动一位。物理大小&#…

冷门赛道,视频号励志语录赛道详解,新手轻松上手

大家好&#xff0c;我是闷声轻创&#xff0c;在当今数字化时代&#xff0c;社交媒体已成为人们获取信息、分享生活和实现个人价值的重要渠道。视频号&#xff0c;作为新兴的短视频平台&#xff0c;以其独特的优势和巨大的流量潜力&#xff0c;吸引了众多创作者的目光。今天我将…

防近视台灯有效果吗?专业护眼台灯推荐!告诉你台灯怎么选

随着学业负担的加重和电子设备的广泛普及&#xff0c;近视问题在青少年群体中愈发凸显&#xff0c;近视率持续走高。导致近视的因素错综复杂&#xff0c;除了过度使用手机外&#xff0c;遗传因素、不良的用眼习惯、环境因素、营养不均衡以及学习压力等均为重要因素&#xff0c;…

c++习题01-ljc的暑期兼职

目录 一&#xff0c;题目描述 二&#xff0c;思路 三&#xff0c;伪代码 四&#xff0c;流程图 五&#xff0c;代码 一&#xff0c;题目描述 二&#xff0c;思路 1&#xff0c;根据题目要求需要声明4个变量&#xff1a;a,b,c,d ;牛奶价格a&#xff0c;活动要求b&…

Advantest 93000测试机中CLOCK DOMAIN 详解

爱德万测试&#xff08;Advantest&#xff09;的V93000系列测试系统是一个高度模块化和可扩展的平台&#xff0c;专为复杂和高性能的半导体器件测试而设计&#xff0c;包括系统级芯片&#xff08;SoC&#xff09;、存储器、射频&#xff08;RF&#xff09;和混合信号器件等。在…

C++语法20 一维数组及其相关问题详解

这是《C算法宝典》语法入门篇的第20节文章啦~ 如果你之前没有太多C基础&#xff0c;请点击&#x1f449;专栏&#xff1a;C语法入门&#xff0c;如果你C语法基础已经炉火纯青&#xff0c;则可以进阶算法&#x1f449;专栏&#xff1a;算法知识和数据结构&#x1f449;专栏&…