1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 记录在小程序中前端调用百度 Ocr 识别身份证信息

记录在小程序中前端调用百度 Ocr 识别身份证信息

时间:2018-12-03 02:06:34

相关推荐

记录在小程序中前端调用百度 Ocr 识别身份证信息

微信小程序因为业务扩展需要用户身份证信息,这里记录一下在小程序中通过百度ocr识别的一个开发过程记录。

1. 注册百度云账号

首先,我们要去百度云注册个账号,百度云注册,已经注册过可以忽略这部。注册完成后,登录到首页,点击 产品-人工智能-卡证文字识别,查看技术文档。

2. 接口文档分析

请求说明

HTTP 方法:POST

请求URL:/rest/2.0/ocr/v1/idcard

URL参数:

Header如下:

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

请求参数

看到这部已经很清晰明了,我们要传递一个 access_token 的参数,这里的access_token 是通过 API Key和Secret Key 进行的一个身份识别参数,接下来看如何获取这个access_token。

3. 获取 access_tokenassess

请求URL数据格式

向授权服务地址/oauth/2.0/token发送请求(推荐使用POST),并在URL中带上以下参数:

grant_type:必须参数,固定为client_credentialsclient_id:必须参数,应用的API Keyclient_secret:必须参数,应用的Secret Key

例如:

/oauth/2.0/token?grant_type=client_credentials&client_id=Va5yQRHlA4Fq5eR3LT0vuXV4&client_

接下来,获取grant_type client_id client_secret ,向/oauth/2.0/token 发送请求获取身份证识别所需的access_token。

到文字识别这块,我们需要创建一个应用,填好自己的信息。

填写完毕后我们会在 管理应用中看到我们创建的应用信息。

这里就有我们所需的 API Key和 Secret Key。因为我们这里 assess_token 这一步是我们后端去获取的,assess_token 的过期时间是 30天,后端设置了定时器 每隔30天调用一次。我们前端只需要通过接口去调用去拿这个assess_token.

4. 调用接口识别身份证

这里封装一个 js 方法,去调用身份证识别。ps:我们的小程序使用 Taro框架开发的

// ocr请求export const onOcr = async () => {// 调用后端接口获取 assess_assess_tokenconst { msg } = await getAccessToken();return new Promise((resolve, reject) => {//识别身份证Taro.chooseImage({count: 1,sizeType: ['compressed'],sourceType: ['album', 'camera'],success: function (res) {//核心代码Taro.getFileSystemManager().readFile({filePath: res.tempFilePaths[0],encoding: 'base64', //编码格式success(ans) {Taro.showLoading({ title: '识别中' })Taro.request({url: '/rest/2.0/ocr/v1/idcard?access_token=' + msg,method: 'POST',header: {'Content-Type': 'application/x-www-form-urlencoded'},data: {image: ans.data,id_card_side: 'front'},success(_res) {Taro.hideLoading();return resolve(_res.data)}, fail(_res) {Taro.hideLoading();Taro.showToast({title: '网络出错,请稍后再试~',icon: 'none'})reject(_res)}})}})}})})}

接下里也是最后一步,也是最重要一点,千万别忘记在小程序后台管理页面配置一下 request请求合法域名:

到此,就完美结束,具体的使用场景以及需求还需根据官方技术文档自行传递参数,以及失败的code码都有详细描述。最后提醒一下,每条应用管理 每天免费调用次数只有500次。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。