您当前的位置: 首页 > 解决方案

微信小程序接入百度OCR

  • 作者: admin
  • 发布于 2020-03-12 10:18:11
  • 来源:  
  • 栏目:解决方案

导语: 小程序接入百度ocr身份证识别" style="margin: 0.3rem 0px 0.1333rem; padding: 0px; color: var(--TextCo

 

1.接口描述

支持对二代居民身份证正反面所有8个字段进行结构化识别,包括姓名、性别、民族、出生日期、住址、身份证号、签发机关、有效期限,识别准确率超过99%;同时支持身份证正面头像检测,并返回头像切片的base64编码及位置信息。

同时,支持对用户上传的身份证图片进行图像风险和质量检测,可识别图片是否为复印件或临时身份证,是否被翻拍或编辑,是否存在正反颠倒、模糊、欠曝、过曝等质量问题。

01.jpg

Body中放置请求参数,参数详情如下:

请求参数

参数 是否必选 类型 可选值范围 说明
image string - 图像数据,base64编码后进行urlencode,要求base64编码和urlencode后大小不超过4M,最短边至少15px,最长边最大4096px,支持jpg/jpeg/png/bmp格式
id_card_side string front/back front:身份证含照片的一面;back:身份证带国徽的一面
detect_direction string true/false 是否检测图像旋转角度,默认检测,即:true。朝向是指输入图像是正常方向、逆时针旋转90/180/270度。可选值包括: - true:检测旋转角度; - false:不检测旋转角度。
detect_risk string true/false 是否开启身份证风险类型(身份证复印件、临时身份证、身份证翻拍、修改过的身份证)功能,默认不开启,即:false。可选值:true-开启;false-不开启
detect_photo string true/false 是否检测头像内容,默认不检测。可选值:true-检测头像并返回头像的 base64 编码及位置信息
detect_rectify string true/false 是否进行完整性校验,默认为true,需上传各字段内容完善的图片方可识别;如果设置为false,则对于身份证切片(如仅身份证号区域)也可识别

2.小程序端调用

需要参数access_token,存放在云数据库中,并定时刷新,不明白如何获取并定时刷新的参考文章:

[小程序开发技巧总结(三)-- 云开发时效数据刷新和存储 (access_token等)]

2.1 自定义文件 profunc.js,实现函数并封装

function OcrIdCard(access_token){   return new Promise(function(resolve,reject){     var that = this;     //识别身份证     wx.chooseImage({       count: 1,       sizeType: ['compressed'],       sourceType: ['album', 'camera'],       success: function (res) {         console.log(res.tempFilePaths)         wx.getFileSystemManager().readFile({           filePath: res.tempFilePaths[0],           encoding: 'base64', //编码格式           success(ans) {             // console.log(ans.data)             wx.showLoading({ title: '识别中' })             wx.request({               url: 'https://aip.baidubce.com/rest/2.0/ocr/v1/idcard?access_token=' + access_token,               method: 'POST',               header: {                 'Content-Type': 'application/x-www-form-urlencoded'               },               data: {                 image: ans.data,                 id_card_side: 'front'               },               success(_res) {                 wx.hideLoading();                 resolve(_res)                                }, fail(_res) {                 wx.hideLoading();                 wx.showToast({                   title: '请求出错',                 })                 reject(_res)               }             })           }         })       }     })   }) }  module.exports = {   OcrIdCard: OcrIdCard }

2.2 在小程序页面引用,需要传入access_token

const cwx = require('profunc.js'); //在小程序页面引入该js 文件 ... ocridcard(){       var that = this;       cwx.OcrIdCard(that.data.access_token).then(function(_res){         var trdata = _res.data.words_result;         console.log(trdata)         that.setData({           name: trdata['姓名'].words,           idcard: trdata['公民身份号码'].words,           userloc: trdata['住址'].words         })     })       }

3.效果展示

02.jpg

接口返回数据如下

03.jpg



温馨提示:这篇文章没有解决您的问题?欢迎添加微信:18948083295,有微信小程序专业人员,保证有问必答。转载本站文章请注明转自http://www.okeydown.com/(微信小程序网)。

  • 微信扫描二维码关注官方微信
  • ▲长按图片识别二维码
关注我们

微信小程序官方微信

栏目最新
栏目推荐
返回顶部