微信小程序怎么绕过人脸的(详解微信小程序官方人脸核身认证)
类别:编程学习 浏览量:921
时间:2022-01-18 01:23:54 微信小程序怎么绕过人脸的
详解微信小程序官方人脸核身认证小程序收集了下用户个人信息上传被打回来说:
你好,小程序页面功能涉及:采集用户生物特征(人脸照片或视频)及其他敏感信息,用于身份认识或识别,
为保障用户敏感隐私身份信息,平台暂不支持此功能。请去除相关功能后重新提交。
然后就去找度娘搜了下需要申请
wx.startFacialRecognitionVerify({})
https://api.weixin.qq.com/cgi-bin/token?appid=appid&secret=secret&grant_type=client_credential
https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token=access_token
https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=access_token
首先要给申请下来的接口发送俩个参数:名字、身份证号码
photo.js
data: { openid: '', custName: '姓名', custIdCard: '身份证号码', verifyImg: '' }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this.setData({ custName: options.custName, custIdCard: options.custIdCard }); var _this = this; wx.checkIsSupportFacialRecognition({ checkAliveType: 2, success: function (res) { if (res.errCode === 0 || res.errMsg === "checkIsSupportFacialRecognition:ok") { //调用人脸识别 _this.startface(_this.data.custName.replace(/(^\s*)|(\s*)$/g, ""), _this.data.custIdCard); //身份证名称,身份证号码 return; } wx.showToast('微信版本过低,暂时无法使用此功能,请升级微信最新版本') }, fail: function(res){ wx.showToast('微信版本过低,暂时无法使用此功能,请升级微信最新版本') } }) }, startface(name, idcard) { console.log('我进来了!!!'); var _this = this; wx.startFacialRecognitionVerify({ name: _this.data.custName, //身份证名称 idCardNumber: _this.data.custIdCard, //身份证号码 success: function (res) { var verifyResult = res.verifyResult; //认证结果 //调用接口 wx.request({ url: 'https://api.weixin.qq.com/cgi-bin/token?appid=wx2cafec51ec4c2153&secret=8d3e68a5a2c702673340d72d1c7db4cc&grant_type=client_credential', data: { }, method: 'POST', header: { 'content-type': 'application/json;charset=utf-8' }, success: function (res) { console.log(res.data); console.log(res.data.access_token) var token = res.data.access_token; wx.request({ url: 'https://api.weixin.qq.com/cityservice/face/identify/getinfo?access_token=' + res.data.access_token, data: { verify_result: verifyResult }, method: 'POST', header: { 'content-type': 'application/json;charset=utf-8' }, success: function (res) { console.log(res.data) console.log('我终于成功了。。。。') wx.request({ url: 'https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=' + token, data: { verify_result: verifyResult }, method: 'POST', responseType: 'arraybuffer', header: { 'content-type': 'application/json;charset=utf-8', }, success: (res) => { // console.log('data:image/png;base64,'+wx.arrayBufferToBases64(res)) console.log(res.data); var base64 = wx.arrayBufferToBase64(res.data); _this.setData({ verifyImg:'data:image/png;base64,'+ base64}) wx.navigateTo({ url: '../msg/msg?msg=恭喜您信息核验成功&verifyImg=' + _this.data.verifyImg }); }, fail: function (res) { console.log('失败', res.data) } }) }, fail: function (res) { } }) }, fail: function (res) { } }) console.log(verifyResult) // wx.navigateTo({ // url: '../msg/msg?msg=人脸核身认证成功' // }); }, checkAliveType: 2, //屏幕闪烁(人脸核验的交互方式,默认0,读数字) fail: err => { wx.showToast('请保持光线充足,面部正对手机,且无遮挡') wx.navigateTo({ url: '../msg/msg?msg=请保持光线充足,面部正对手机,且无遮挡,请退出重新操作' }); } }) }
主要坑的是这样下来得申请好几次接口到最后业务还需要unionid所以还得去微信开放平台申请认证
然后想要拉取核身结果的图片的时候就需要党上面的https://api.weixin.qq.com/cityservice/face/identify/getimage?access_token=access_token
返回的数据需要转成base64码然后显示在image标签上我是直接传给后台的
下面上我msg的js代码
msg.js
const app = getApp(); Page({ /** * 页面的初始数据 */ data: { msg:'', verifyImg:'', url:app.globalData.PostData }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { var timestamp = Date.parse(new Date()); timestamp = timestamp/1000 console.log(options) var that = this; that.setData({ msg:options.msg, verifyImg:options.verifyImg }); console.log(that.data.url) console.log(that.data.verifyImg) wx.request({ url: that.data.url+'fileUpload!upBase64.do', //仅为示例,非真实的接口地址 data: { file:that.data.verifyImg, filename:timestamp, filedata:that.data.verifyImg }, method: 'POST', header: { 'content-type': 'application/x-www-form-urlencoded;charset=utf-8' }, success:function (res){ const data = res.data console.log('成功',data); //do something }, fail:function(res){ console.log('失败',res) } }) }
后台上传base64转换的代码
public void upBase64() { System.out.println("======开始上传图片===="); System.out.println(file); Json j = new Json(); String FilePath = ServletActionContext.getServletContext().getRealPath(Constants.IMGPATH+"/"+Constants.PHOTOPATH); File PathFile = new File(FilePath); try { // 如果是IE,那么需要设置为text/html,否则会弹框下载 // response.setContentType("text/html;charset=UTF-8"); response.setContentType("application/json;charset=UTF-8"); String FileName = request.getParameter("filename"); String FileData = request.getParameter("filedata"); System.out.println(FileName+"**************"+FileData); if (null == FileData || FileData.length() < 50) { j.setMsg("上传失败,数据太短或不存"); j.setSuccess(false); } else { // 去除开头不合理的数据 FileData = FileData.substring(30); FileData = URLDecoder.decode(FileData, "UTF-8"); System.out.println("FileData="+FileData); byte[] data = FileUtil.decode(FileData); /*if (null == FileName || FileName.length() < 1) { FileName = System.currentTimeMillis() + ".jpg"; }*/ // 写入到文件 FileOutputStream outputStream = new FileOutputStream(new File(PathFile,FileName)); outputStream.write(data); outputStream.flush(); outputStream.close(); System.out.println(FileName+"**************"+FileData); j.setMsg("上传成功"); j.setSuccess(true); } } catch (Exception err) { j.setMsg("上传失败"); j.setSuccess(false); err.printStackTrace(); } writeJson(j); }
以上就是详解微信小程序官方人脸核身认证的详细内容,更多关于微信小程序官方人脸核身认证的资料请关注开心学习网其它相关文章!
您可能感兴趣
- 微信小程序接入第三方支付的方法(小程序通过小程序云实现微信支付功能实例)
- 微信小程序日期选择器有星期天(微信小程序 滚动选择器时间日期详解及实例代码)
- 微信小程序function怎么使用(微信小程序在{{ }}中直接使用函数的方法示例)
- 微信小程序图片加特效(微信小程序实现可实时改变转速的css3旋转动画实例代码)
- 小程序数字化怎么布局(用position:sticky完美解决小程序吸顶问题的实现方法)
- 微信小程序ui聊天窗口(微信小程序实现简单聊天室)
- dedecms织梦小程序插件(批量删除织梦dedecms文档搜索关键词的方法)
- 小程序实现购物车功能前后端代码(小程序实现购物车完整版)
- 小程序开发计算方法(小程序实现简单的计算器)
- 怎么编写计算小程序(微信小程序实现简易计算器)
- 小程序可滑动弧形进度条(小程序实现文字循环滚动动画)
- uni app 小程序全局样式没法用(uniapp封装小程序雷达图组件的完整代码)
- html5按钮点击跳转(HTML5页面嵌入小程序没有返回按钮及返回页面空白的问题)
- 微信小程序映射设置(微信小程序虚拟列表的实现示例)
- 宝塔小程序制作(宝塔面板微信小程序使用图文教程)
- python小程序编程代码(python实现烟花小程序)
- 金品公司 界界乐中秋限定飞行棋礼盒 露营藤篮礼盒全新上市(界界乐中秋限定飞行棋礼盒)
- 必看 8月,相比七夕,更需要注意的是这些事(必看8月相比七夕)
- 8月23日11时16分将迎处暑,逐渐进入气象意义上的秋天(8月23日11时16分将迎处暑)
- 花不语 下 如果重来一次的话,你还会这么选择吗(花不语下如果重来一次的话)
- 城市记忆之上海 最难忘的是老弄堂里的市井味道(城市记忆之上海)
- 太鸡贼了,这老小区轻松搞定了停车问题(这老小区轻松搞定了停车问题)
热门推荐
- mysql重复插入数据教程(Mysql避免重复插入数据的4种方式)
- nginx安全配置提示(wdcp Linux面板nginx启用gzip后js未压缩解决方案)
- thinkphp 多维度展示数据(Thinkphp自定义生成缩略图尺寸的方法)
- SQL Server遍历表中记录的方法
- dede模板手机端显示设置(DEDE模板中如何运行php脚本和变量在需要操作数据库字段时)
- zabbix监控sql server集群(zabbix 监控mysql的方法)
- python中split使用方法(python lxml中etree的简单应用)
- sqlserver多表查询(sqlserver 树形结构查询单表实例代码)
- dedecms数据库优化(dedecms友情链接flink增加下拉菜单的方法)
- aspwebserver怎么操作(EasyWebServer怎么用?EasyWebServer网站服务器软件使用教程)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9