微信小程序实现身份证识别-orc

news2024/10/2 3:27:17

    项目中有一个识别身份证的需求,经过调研,最后决定使用微信小程序orc插件进行开发。

一:首先登录小程序公众平台。

1:进入设置> 第三方设置。

 

2:添加ocr插件。

3:添加完后,需要领取免费额度,100次/天。 

https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415

 注意:如果没购买的话,调用会报错。

二:功能开发

ocr识别有两种方式,一种是按照官方文档。

1:首先在app.json里配置ocr-plugin.

  "plugins": {
    "ocr-plugin": {
      "version": "3.0.6",
      "provider": "wx4418e3e031e551be"
    }
  },

2:在业务组件中引入插件。

 "usingComponents": {
    "ocr-navigator": "plugin://ocr-plugin/ocr-navigator"
  },

3:使用

    <ocr-navigator bind:onSuccess="success" certificateType="idCard" opposite="{{false}}">
      <view class="btn">识别</view>
    </ocr-navigator>
  success(e) {
	console.log(e) //身份证信息
  },

这种方式可以进行扫描,并且可以支持上传身份证图片进行扫描。

由于我们的业务是自定义上传图片识别出身份信息后进行对应的业务操作,所以采用自定义调用orc api能力的方式来进行开发。

文档地址: 

https://fuwu.weixin.qq.com/service/detail/000ce4cec24ca026d37900ed551415

 

 利用van-uploader上传身份证图片后拿到file对象,调用api进行识别

 //  文件读取后
  afterRead(e) {
    let _key = e.currentTarget.dataset.key;
    _key = `${_key}Img[0]`
    let { file } = e.detail || {};
    let _file = {
      url: file.url,
      name: "身份证人像面",
    };
    this.setData({
      [_key]: _file,
    });
    this.invokeService(_file, e.currentTarget.dataset.key)
    console.log(this.data, "文件信息");
  },

async invokeService (file,_key) {
    // 调用ocr
    try {
        const invokeRes = await wx.serviceMarket.invokeService({
            service: 'wx79ac3de8be320b71',
            api: 'OcrAllInOne',
            data: {
              // 用 CDN 方法标记要上传并转换成 HTTP URL 的文件
              img_url: new wx.serviceMarket.CDN({
                type: 'filePath',
                filePath: file.url,
              }),
              data_type: 3,
              ocr_type: 1
            },
          })
          console.log('invokeService success', invokeRes)
    } catch (error) {
        console.log(error,'error')
    }
  },

拿到invokeRes返回对象就可以进行后续业务操作了,注意身份证国徽面识别也要调用一次invokeService 方法拿到证件有效期等信息,然后对数据自行处理成所需要的格式。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot+Vue实现后疫情时代下的旅游管理系统

文末获取源码 开发语言&#xff1a;Java 使用框架&#xff1a;spring boot 前端技术&#xff1a;JavaScript、Vue.js 、css3 开发工具&#xff1a;IDEA/MyEclipse/Eclipse、Visual Studio Code 数据库&#xff1a;MySQL 5.7/8.0 数据库管理工具&#xff1a;phpstudy/Navicat JD…

Linux高级之日志管理

Linux高级之日志管理1.系统常用日志2.日志服务的稳定性3.自定义日志服务4.日志轮替5.内存日志1.系统常用日志 日志文件用于记录linux系统的各种运行信息的文件&#xff0c;相当于linux主机的日记&#xff0c;不同的日志文件记载了不同类型的信息,如Linux内核消息、用户登录事件…

React学习04-React_Ajax

写在前面 React本身只关注于界面&#xff0c;并不包含发送ajax请求的代码前端应用需要通过ajax请求与后台进行交互&#xff08;json数据&#xff09;React应用中需要集成第三方ajax库&#xff08;或自己封装&#xff09; 常用的ajax请求库 jQuery&#xff1a;比较重&#xf…

C|%输出各种类型的值总结

参考&#xff1a; C语音输出各种类型数据的方式 c语言中%s的用法 %d&#xff1a;十进制有符号整数 输出的数据范围是 signed int 的范围&#xff0c;即 0x80000000 ~ 0x7FFFFFFF&#xff08;-2147483648~2147483647&#xff09; %u&#xff1a;十进制无符号整数 输出范围0~0xF…

JVM-垃圾回收

1、GC分类 &#xff08;1&#xff09;部分收集&#xff08;Partial GC&#xff09; 新生代收集&#xff08;Minor GC/Young GC&#xff09;&#xff1a;只对新生代进行垃圾收集。&#xff08;读音[ˈmaɪnə(r)]&#xff09; 老年代收集&#xff08;Major GC/Old GC&#xff09…

基于SpringBoot+mybatis+mysql+html家具城进销存管理系统

基于SpringBootmybatismysqlhtml家具城进销存管理系统一、系统介绍二、功能展示1.用户登陆2.进货管理(货物管理员)3.退货管理&#xff08;货物管理员&#xff09;4.商品销售、商品销售退货(商品管理员)5.管理商品、商品类别、供应商、客户&#xff08;商品管理员&#xff09;6.…

DirtyPipe(CVE-2022-0847)漏洞分析

前言 CVE-2022-0847 DirtyPipe脏管道漏洞是Linux内核中的一个漏洞&#xff0c;该漏洞允许写只读文件&#xff0c;从而导致提权。 调试环境 ubuntu 20.04Linux-5.16.10qemu-system-x86_64 4.2.1 漏洞验证 首先创建一个只读文件foo.txt&#xff0c;并且正常情况下是无法修改…

微信小程序集成three.js--6.利用raycastor选择对象

1.实例演示 小程序集成Three.js&#xff0c;利用raycaster实现对象的2.源码 &#xff08;1&#xff09;引入库并声明变量 import * as THREE from ../../libs/three.weapp.js import {OrbitControls } from ../../jsm/controls/OrbitControls const app getApp()// 声明一个…

知识付费系统源码搭建流程讲解、代码分析

知识付费系统是现在多数教培机构优先考虑的线上教学系统&#xff0c;而很多机构自身有技术人员常驻&#xff0c;所以不需要再花费资金去直接购买搭建好的成品系统&#xff0c;转而直接购买源码后&#xff0c;自行搭建配置。 目前&#xff0c;知识付费系统是许多教培机构转型的首…

BOSS直聘自动投简历聊天机器人的实现过程

这两年疫情&#xff0c;公司业务越来越差&#xff0c;必须得准备后路了&#xff0c;每天睡前都会在直聘上打一遍招呼&#xff0c;一直到打哈欠有睡意为止...,这样持续了一周&#xff0c;发现很难坚持&#xff0c;身为一名资深蜘蛛侠&#xff0c;怎么能这样下去呢&#xff1f;于…

Jmeter二次开发实现rsa加密

jmeter函数助手提供了大量的函数&#xff0c;像 counter、digest、random、split、strLen&#xff0c;这些函数在接口测试、性能测试中大量被使用&#xff0c;但是大家在实际工作&#xff0c;形形色色的测试需求不同&#xff0c;导致jmeter自带或者扩展插件给我们提供的函数无法…

LeetCode —— 二叉树

持续更新中................ 二叉树的定义 public class TreeNode {int val;TreeNode left;TreeNode right;public TreeNode() {}public TreeNode(int val) {this.val val;}public TreeNode(int val, TreeNode left, TreeNode right) {this.val val;this.left left;this.r…

nginx看这一篇文章就够了

一、Nginx简介 Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件&#xff08;IMAP/POP3&#xff09;代理服务器。是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文&#xff1a;Рамблер&#xff09;开发的。其特点是占有内存少&#xff0c…

智能机柜PDU助力中小型数据中心机房末端配电系统建设

数据中心作为我国已确定“新基建”的七大领域之一&#xff0c;在国民经济和社会发展中扮演中越来越重要的角色&#xff0c;成为各行各业的关键基础设施&#xff0c;为各产业转型升级提供了重要支撑。据相关数据显示&#xff0c;2018年至今&#xff0c;我国的数据中心市场年均复…

项目管理工具dhtmlxGantt甘特图入门教程(四):可见性和布局视图大小设置

dhtmlxGantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表&#xff0c;可满足项目管理控件应用程序的所有需求&#xff0c;是完善的甘特图图表库。这篇文章给大家讲解 dhtmlxGantt的可见性组、布局大小和隐藏父布局视图。 DhtmlxGantt正版试用下载&#xff08;qun&…

【BP靶场portswigger-服务端3】目录遍历漏洞-6个实验(全)

目录 一、目录遍历 1、意义 二、通过目录遍历阅读任意文件 1、示例 实验1&#xff1a;文件路径遍历&#xff08;简单&#xff09; 三、利用文件路径遍历漏洞的常见障碍 1、对于../等的限制 实验2&#xff1a;文件路径遍历&#xff08;用绝对路径旁路阻止遍历序列&#xf…

相距两千多公里,仅仅数月,从相亲走到结婚 | 2022年复盘日记

&#x1f468;‍&#x1f393;作者&#xff1a;bug菌 &#x1f389;简介&#xff1a;CSDN、掘金等社区优质创作者&#xff0c;全网合计7w粉&#xff0c;对一切技术都感兴趣&#xff0c;重心偏Java方向&#xff0c;目前运营公众号「猿圈奇妙屋」&#xff0c;欢迎小伙伴们的加入&…

制造型企业如何利用WMS系统在大环境中取胜

如今数字化转型已经成为制造型企业高质量高发展的重要手段&#xff0c;越来越多的企业开始加大对数字化转型的投入来提升竞争力。例如&#xff1a;有些企业会上线WMS系统来搭建自己的数字化仓库管理平台&#xff0c;实现仓库业务的自动化和数字化升级。随着制造企业市场规模的不…

基于Xlinx的时序分析与约束(6)----如何读懂vivado下的时序报告?

写在前面 在《基于Xlinx的时序分析与约束&#xff08;3&#xff09;----基础概念&#xff08;下&#xff09;》文章中写了一些时序分析的基础概念&#xff0c;同时还说了文章中提到的公式根本就不需要记忆&#xff0c;因为综合工具vivado会帮你把所有时序路径都做详尽的分析&am…

Springboot延伸之自定义Banner

前言 前几周陆陆续续花了5万多字写了我读到的Springboot启动过程的源码&#xff0c;收获颇多&#xff0c;其中给自己留了扩展的作业。我们每次启动Springboot的时候&#xff0c;都有一个Spring的Banner&#xff0c;读源码的过程中可以得知我们可以自定义属于自己的Banner&…