互亿无线 · 文档中心

身份证OCR识别 - API文档


身份证OCR识别接口文档 点击下载

身份证OCR识别接口接入指南 点击访问

1、概要

1.1 文档说明

本文档主要提供给互亿平台的用户对接接口的使用说明,开发者可以利用互亿无线提供的 HTTP 接口,调用互亿无线的身份证OCR识别服务。

1.2 接口内容

本文档包含身份证OCR提交识别、余额查询。

1.3 提交方式

GET / POST

1.4 加密方式

1、采用HTTPS协议提交请求
2、通过MD5动态签名方式加密

1.5 API ID / API KEY

登录用户中心,进入【API数据服务-OCR】模块,在【产品总览】页面右上角,如下图所示:

ocr识别接口

1.6 限制条件

  • · 文件格式支持:OCR服务支持多种常见的文件格式,包括JPG、JPEG、PNG、BMP和PDF等。为了获得最佳的识别效果,我们建议使用JPG格式。
  • · 图片像素尺寸要求:图片的像素尺寸应介于最小256 x 256像素和最大2048 x 2048像素之间。为确保文字识别的准确性,建议身份证图片的最短边长不低于256像素,并且整个图片的长宽比应保持在合理范围内。
  • · 文件大小限制:文件大小(经Base64编码和urlencode处理后)不应超过8MB。请尽量使身份证主体占据图片的主要区域,注意我们不支持黑白图片。如果传送图片或PDF的完整URL,建议对应文件大小不要超过8MB。
  • · 注意图片质量:确保身份证图片足夜清晰,避免由于压缩产生的噪声。不当的光照(如强光、暗光、逆光)和身份证正反面的遮挡也应避免,这些因素可能会降低识别的准确度。
  • · 图片版权和法律风险:提交的图片需拥有版权和肖像权,且不涉及任何法律或政策风险。请在使用前对相关风险进行评估。
  • · 多页PDF处理:输入多页PDF文件时,默认只识别第一页。

2、身份证OCR提交识别

2.1 接口描述

通过POST、 GET 方式进行提交,数据编码采用utf-8格式,支持24小时全天提交。

2.2 请求地址

https://api.ihuyi.com/ocr/Submit.json

2.3 请求参数

参数名称 参数值描述 必填
account APIID(用户中心【API数据服务-OCR】-【产品总览】查看)
password 1、APIKEY(用户中心【API数据服务-OCR】-【产品总览】查看)
2、动态密码(生成动态密码方式请看该文档末尾的说明)
app idcard
img_base64 图片base64编码(与“img_url”二选一,推荐使用“img_url”方式)
img_url 图片URL(与“img_base64”二选一,推荐使用“img_url”方式)
time Unix时间戳(10位整型数字,当使用动态密码方式时为必填)

*注:“img_base64”和“img_url”,只需要二选一,推荐使用“img_url”方式

用户通过http 或 https提交发送请求到服务器后,服务器会返回一串json格式的字符串,SubmitResult结构说明如下:

参数名称 类型 描述
code int 返回值为2时,表示提交成功
ocrid string 当提交成功后,此字段为流水号,否则为0
content object 识别内容(字段详情分正面和反面)

正面内容

参数名称 类型 描述
code int 返回值为2时,表示提交成功
type string front
name string 姓名
id_number string 身份证号
gender string 性别
ethnicity string 民族
data_of_birth string 出生日期(YYYY.MM.DD)
domicile string 住址

反面内容

参数名称 类型 描述
code int 返回值为2时,表示提交成功
type string back
issue_authority string 签发机关
valid_period string 有效期限(YYYY.MM.DD-YYYY.MM.DD)

2.4 响应示例

示例(成功)

{"code":2,"msg":"提交成功","ocrid":"22101320041348318","content":{"type":"back","issue_authority":"上海市公安局徐汇分局","valid_period":"2005.10.08-2025.10.08"}}

示例(失败)

{"code":405,"msg":"API ID或API KEY不正确","ocrid":"0","content":{}}

2.5 响应参数

code msg
0 未知错误
1 提交失败
2 提交成功
400 非法ip访问
401 帐号不能为空
402 密码不能为空
403 应用不存在
404 img_base64或img_url必须传一个
405 API ID 或 API KEY 不正确
4050 账号被冻结
40501 动态密码已过期
40502 动态密码校验失败
40505 没有签定合同
4051 剩余次数不足
4052 访问 ip 与备案 ip 不符
4086 图片错误
4010 通道错误

2.6 GET请求示例

https://api.ihuyi.com/ocr/Submit.json&account=APIID&password=APIKEY&app=idcard&img_url=http://www.xxxx.com/xxxx.png

3、身份证OCR余额查询

3.1 接口描述

通过接口可以方便的查询你的账户剩余次数。

3.2 请求地址

https://api.ihuyi.com/ocr/GetNum.json

3.3 请求参数

参数名称 参数值描述 是否必填
account APIID(用户中心【API数据服务-OCR】-【产品总览】查看)
password 1、APIKEY(用户中心【API数据服务-OCR】-【产品总览】查看)
2、动态密码(生成动态密码方式请看该文档末尾的说明)
app idcard
time Unix时间戳(10位整型数字,当使用动态密码方式时为必填)

用户通过http 或 https提交请求到服务器后,服务器会返回一串json格式的字符串,GetNumResult结构说明如下:

参数名称 类型 描述
code int 状态返回值
msg string 查询结果描述
num string 剩余次数

3.4 响应示例

示例(成功)

{"code":2,"msg":"查询成功","num":123} 

示例(失败)

{"code":405,"msg":"API ID或API KEY不正确","num":0}

3.5 响应参数

code msg
2 查询成功
400 非法ip访问
401 帐号不能为空
402 密码不能为空
403 应用不存在
405 API ID或API KEY不正确
4050 账号被冻结
40501 动态密码已过期
40502 动态密码校验失败
4052 访问ip与备案ip不符

3.6 GET请求示例

https://api.ihuyi.com/ocr/GetNum.json&account=APIID&password=APIKEY&app=idcard

4、生成动态密码方式

以PHP为例,提交认证的生成方式:

$time = time();
$password=md5($account.$apikey.$app.$img_base64.$img_url.$time);

例如:

APIID: test
APIID: test
APIKEY:1q784322ba1******
app:idcard
img_base64:
img_url:http://www.xx.com/xxx.png
time:1651544941
结果:$password=md5('test1q784322ba1******idcardhttp://www.xx.com/xxx.png1651544941');

注意:所以字符编码统一为UTF-8

查询剩余条数的生成方式:

$time=time();
$password=md5($account.$apikey.$app.$time);

例如:

APIID: test
APIKEY:1q784322ba1******
app:idcard
time:1651544941
结果:$password=md5('test1q784322ba1******idcard1651544941');

Unix时间戳参考地址:http://tool.chinaz.com/Tools/unixtime.aspx

5、如何实现UNIX时间戳

语言 代码
JAVA String date = new java.text.SimpleDateFormat("dd/MM/yyyy HH:mm:ss").format(new java.util.Date(Unix timestamp *1000))
Linux date -d @Unix timestamp
C strptime(datetime, "%Y-%m-%d %H:%M:%S", &tm_time); unixtime = mktime(&tm_time);
C++ std::time_t t = std::time(0);
DELPHI uses DateUtils;
DateTimeToUnix(Now)
GO import "time"
cur := time.Now()
timestamp := cur.UnixNano() / 1000000
Perl 先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]
PHP date('r', Unix timestamp)
Node.js var date = new Date( time * 1000 );
var time = date.getTime()/1000;
Python 先 import time 然后 time.gmtime(Unix timestamp)
Ruby Time.at(Unix timestamp)
SHELL date +%s //UNIX 的时间戳;
VBScript / ASP DateAdd("s", Unix timestamp, "01/01/1970 00:00:00")
VB6 DateDiff("s", "1970-1-1 0:0:0", ToUnixTime)
易语言 时间_到时间戳()

6、身份证OCR识别 DEMO示例

语言 代码
php https://www.ihuyi.com/demo/ocr-idcard/php.html
Java https://www.ihuyi.com/demo/ocr-idcard/java.html
C++ https://www.ihuyi.com/demo/ocr-idcard/cpp.html
Go https://www.ihuyi.com/demo/ocr-idcard/go.html
python https://www.ihuyi.com/demo/ocr-idcard/python.html

7、身份证OCR识别接口产品开通

自助开通身份证OCR识别接口
将图片上的文字内容,智能识别成为可编辑的文本
身份证OCR识别套餐 免费开通账户 身份证OCR识别介绍

 

现在注册,即享新用户礼包!

在线咨询
电话咨询

服务热线:

4008 808 898

服务热线(工作时间):

4008 808 898

业务咨询(非工作时间):

4008 808 898

售后咨询(非工作时间):

4008 808 898

验证码已发送到您的手机,请查收!

填写验证码后,点击“开通体验账户”自动开通体验账户。

收不到短信验证码?
×