开发准备
小程序端 OCR SDK 接入流程
小程序端 OCR SDK 介绍
SDK 中包含了两个页面:
- id-card - 身份证识别页面(包含正反面,且不可拆分)
- index - 其他模式识别页面(身份证正面、身份证反面、银行卡、名片,彼此相互独立)
环境依赖
开发工具使用微信开发者工具,基础库 2.12.2 或以上版本
业务流程
SDK 的核心诉求是能够让开发者专注于自己业务的开发,而无需过多关注 OCR 实现原理。为此,SDK 将整个 OCR 识别的过程进行打包,提供完整的识别能力(从图片的拍摄/选择,到最终的识别结果输出)。

业务流程时序图
接入步骤
- 配置合法域名
在微信公众平台服务器域名配置中,将https://ocr.tencentcloudapi.com
添加到 request 合法域名中。 - 导入 SDK
将 SDK 包中 ocrsdk 目录放入小程序根目录中. - 添加 SDK 页面配置
根据您的需求在小程序 app.json 文件中添加 SDK 页面。"pages": [ //..., "ocrsdk/pages/id-card/id-card", // 身份证识别页面(包含正反面) "ocrsdk/pages/index/index", // 其他模式识别页面(身份证正面、身份证反面、银行卡、名片,彼此相互独立) ],
在需要使用 SDK 的页面中引入包
const ocrSdk = require("/ocrsdk/index");
调用以下方法进入对应卡证识别页面
ocrSdk.start({ getAuthorization: function() { return new Promise((resolve, reject) => { wx.request({ url: '您服务器端获取临时密钥的接口地址', // 填写您服务器端的接口地址,获取临时密钥 method: "POST", data: { option // 您自定义的参数 }, success(res) { let credentials = res.Credentials; resolve({ temSecretId: credentials.TmpSecretId, temSecretKey: credentials.TmpSecretKey, token: credentials.Token, }) }, fail(err) { resolve(err) wx.navigateTo({ url: '您的小程序页面', }); } }) }) }, secretId: '**************', // 不推荐在生产环境中使用固定密钥 secretKey: '**************', // 不推荐在生产环境中使用固定密钥 ocrType: ocrSdk.OcrType.ID_CARD, ocrOption: { Config: { "CropIdCard": true, "CropPortrait": true } }, cameraConfig: { autoMode: true, maxTry: 3, }, resultPage: true, resultPageConfig: { modifiable: true, }, theme: 'primary', success: (res) => { console.log('ocr result is:', res) wx.navigateTo({ url: '您的小程序页面', }) }, fail: (error)=> { console.log('ocr failed:', error) } });
方法中具体参数请参见 SDK 接口说明。