微信小程序 OCR·idcard
ocr.idcard
本接口应在服务器端调用,详细说明参见服务端API。
本接口支持云调用。需开发者工具版本 >= 1.02.1904090(最新稳定版下载)
wx-server-sdk >= 0.4.0
本接口提供基于小程序的身份证 OCR 识别
调用方式:
- HTTPS 调用
- 云调用
- 增量调用(加强版)
HTTPS 调用
请求地址
POST https://api.weixin.qq.com/cv/ocr/idcard?type=MODE&img_url=ENCODE_URL&access_token=ACCESS_TOCKEN
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
access_token | string | 是 | 接口调用凭证 | |
img_url | string | 是 | 要检测的图片 url,传这个则不用传 img 参数。 | |
img | FormData | 是 | form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。 |
返回值
Object
返回的 JSON 数据包
属性 | 类型 | 说明 |
---|---|---|
errcode | string | 错误码 |
errmsg | string | 错误信息 |
type | string | 正面或背面,Front / Back |
valid_date | string | 有效期 |
使用说明
接口限制 内测期间已认证的订阅号、服务号、企业号、小程序可直接调用,次数限制为500次/天。更强的能力需求,可以走服务市场调用。
使用 Tips 此接口为后台接口,可基于自有业务承载情况,搭配小程序的拍照、相册选照等一起使用,即可完成身份证照片的采集、上传、识别、信息返回等流程,用于需要基于身份证、银行卡等实体卡或证,采集照片或文字信息等的业务场景。
图片说明 文件大小限制:小于2M
图片支持使用img参数实时上传,也支持使用img_url参数传送图片地址,由微信后台下载图片进行识别。type 有两种类型
拍摄图片样例
photo:拍照模型,带背景的图片(示例如下)
scan:扫描模式,不带背景的图片(示例如下)
请求数据示例
示例1:
curl https://api.weixin.qq.com/cv/ocr/idcard?type=photo&img_url= ENCODE_URL&access_token=ACCESS_TOCKEN
示例2:
curl -F ‘img=@test.jpg’“https://api.weixin.qq.com/cv/ocr/idcard?type=photo&access_token=ACCESS_TOCKEN”
返回数据示例
正面返回
{
"errcode": "0",
"errmsg": "ok",
"type": "Front",
"name": "张三",
"id": "123456789012345678",
"addr": "广东省广州市",
"gender": "男",
"nationality": "汉"
}
背面返回
{
"errcode": 0,
"errmsg": "ok",
"type": "Back",
"valid_date": "20070105-20270105"
}
常见错误码
错误码 | errmsg | 说明 |
---|---|---|
-1 | system error | 系统错误,请稍后重试 |
101000 | invalid image url | 图片URL错误或拉取URL图像错误 |
101001 | certificate not found | 图片中无法找到证件 |
101002 | invalid image data | 图片数据无效 |
云调用
云调用是小程序·云开发提供的在云函数中调用微信开放接口的能力,需要在云函数中通过 wx-server-sdk 使用。
接口方法
openapi.ocr.idcard
需在 config.json 中配置 ocr.idcard API 的权限,详情
请求参数
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
imgUrl | string | 是 | 要检测的图片 url,传这个则不用传 img 参数。 | |
img | FormData | 是 | form-data 中媒体文件标识,有filename、filelength、content-type等信息,传这个则不用传 img_url。 |
img 的结构
属性 | 类型 | 默认值 | 必填 | 说明 |
---|---|---|---|---|
contentType | string | 是 | 数据类型,传入 MIME Type | |
value | Buffer | 是 | 文件 Buffer |
返回值
Object
返回的 JSON 数据包
属性 | 类型 | 说明 |
---|---|---|
errCode | string | 错误码 |
errMsg | string | 错误信息 |
type | string | 正面或背面,Front / Back |
validDate | string | 有效期 |
异常
Object
抛出的异常
属性 | 类型 | 说明 |
---|---|---|
errCode | string | 错误码 |
errMsg | string | 错误信息 |
errCode 的合法值
值 | 说明 | 最低版本 |
---|
使用说明
接口限制 内测期间已认证的订阅号、服务号、企业号、小程序可直接调用,次数限制为500次/天。更强的能力需求,可以走服务市场调用。
使用 Tips 此接口为后台接口,可基于自有业务承载情况,搭配小程序的拍照、相册选照等一起使用,即可完成身份证照片的采集、上传、识别、信息返回等流程,用于需要基于身份证、银行卡等实体卡或证,采集照片或文字信息等的业务场景。
图片说明 文件大小限制:小于2M
图片支持使用img参数实时上传,也支持使用img_url参数传送图片地址,由微信后台下载图片进行识别。type 有两种类型
拍摄图片样例
photo:拍照模型,带背景的图片(示例如下)
scan:扫描模式,不带背景的图片(示例如下)
请求数据示例
const cloud = require('wx-server-sdk')
cloud.init()
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.ocr.idcard({
type: 'photo',
imgUrl: 'ENCODE_URL'
})
return result
} catch (err) {
return err
}
}
或
// cloud = require('wx-server-sdk')
// ...
// 方法返回 Promise
cloud.openapi.ocr.idcard({
type: 'photo',
img: {
contentType: 'image/png',
value: Buffer
}
})
返回数据示例
正面返回
{
"errCode": 0,
"errMsg": "openapi.ocr.idcard:ok",
"type": "Front",
"name": "张三",
"id": "123456789012345678",
"addr": "广东省广州市",
"gender": "男",
"nationality": "汉"
}
背面返回
{
"errCode": 0,
"errMsg": "openapi.ocr.idcard:ok",
"type": "Back",
"validDate": "20070105-20270105"
}