阅读(1225) (22)

微信小程序 OCR·idcard

2020-07-29 10:01:13 更新

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"
}