金润·核验通-身份证识别接口文档

简介: 【身份证识别接口】支持对二代居民身份证所有字段的结构化OCR识别提取,支持正、反面身份证识别。支持全国各区域身份证识别。【身份证识别-身份证OCR-身份证正反面图像信息提取-身份证OCR识别-身份证识别-身份证图片识别-身份证识别】《身份证核验、身份证实名认证、身份证实名认证、人脸实名认证》。上海金润联汇数字科技有限公司是一家以ETC为切入点,深耕交通行业,服务于交通生态的数据科技服务平台。2014年开始为货车提供高速通行ETC后付费业务,超10年行业运营经验。货车ETC后付费业务年交易额超150亿元,规模全国屈指可数。与鲁苏浙赣粤黔赣湘闽沪藏。


金润·核验通-身份证识别接口文档

身份证识别接口行业内常用语

身份证OCR识别-身份证图片识别-身份证识别-二代居民身份证OCR识别-身份证信息识别

 目录


1. 接口描述

2. 加密方式

2.1 加签,验签机制说明

2.2 签名算法

2.3 加密方式

2.4 生成签名

2.4.1 筛选并排序

2.4.2 拼接

2.4.3 调用签名函数

2.4.4 拼接完整请求

2.5 解密方式

3. 请求参数

3.1 公共请求参数

3.2 接口请求参数

4. 响应参数

4.1 公共响应参数

4.2 接口响应参数

4.3 字段说明

5. 代码示例

5.1 请求示例

5.2 响应示例

5.3 异常示例

6. 附录

6.1 接口返回码

1. 身份证识别接口描述

接口名称

身份证识别

接口编号

JR-HYT-015

接口描述

用于进行识别身份证信息接口

接口地址

/dmp/api

请求方式

POST

加密方式

RSA2


2. 身份证识别接口加密方式

2.1 加签,验签机制说明

客户在应用中使用自己的“私钥”对消息加签之后,消息和签名会传递给金枢系统,金枢系统则使用应用的 公钥 验证消息的真实性(来自于合法应用的真实消息)。

对于金枢系统返回消息给商户应用的情形,应用则使用金枢系统的 公钥 来验证返回消息的真实性。

 

2.2 签名算法

签名算法:RSA2

标准签名算法:SHA256WithRSA

描述:强制要求 RSA 密钥的长度至少为 2048。

 

2.3 加密方式

请求体加密

将请求参数(biz_content)字段通过 私钥进行加密

2.4 生成签名

2.4.1 筛选并排序

获取所有请求参数(包括公共请求参数),不包括字节类型参数,如文件、字节流,剔除 sign 字段,剔除值为空的参数,并按照第一个字符的键值 ASCII 码递增排序(字母升序排序),如果遇到相同字符则按照第二个字符的键值 ASCII 码递增排序,以此类推。

2.4.2 拼接

将排序后的参数与其对应值,组合成 参数=参数值 的格式,并且把这些参数用 & 字符连接起来,此时生成的字符串为待签名字符串。

示例:

app_id=2014072300XXXXXX&biz_content=fV9IJsNcmZcPEQbvr8S3kkJ3uT0GRfHlAM25LT8w9xCAJqywxotrVlH1ZJsIXwHBvz97uFyNbBoSKbxfRgwKLl7P88hKBmPDwyDzB4t8MT&charset=UTF-8&method=alipay.trade.pay&sign_type=RSA2×tamp=2014-07-24 03:07:50&version=1.0

2.4.3 调用签名函数

使用各自语言对应的 SHA256WithRSA(对应 sign_type 为 RSA2)签名函数利用商户私钥对签名字符串进行签名,并进行 Base64 编码。把生成的签名 encode 后赋值给 sign 参数,拼接到请求参数中。

2.4.4 拼接完整请求

调用签名函数 后需将生成的签名作为 sign 的 value 拼接到请求数据中。

示例:

app_id=2014072300XXXXXX&biz_content=fV9IJsNcmZcPEQbvr8S3kkJ3uT0GRfHlAM25LT8w9xCAJqywxotrVlH1ZJsIXwHBvz97uFyNbBoSKbxfRgwKLl7P88hKBmPDwyDzB4t8MT&charset=UTF-8&method=alipay.trade.pay&sign_type=RSA2×tamp=2014-07-24 03:07:50&version=1.0&sign=GhT5Q6YxBtvf4q855TiNWEF/DIeLMyEE97+OnJDHpe6joNfr9F3BAE37dczcogU7uLfpNo+dh3cgly05bQN5nTj9TJ3SrBZWa40cltlgkI+6+0FuJoFSA225+MCrD4fNNqi2Zd5Adi9qC9NdN8nBVsjvzqtn5NepOt8dG1qdv7KvVwG74emFea1j2JuMBVBMp2PgIEwCv5c8OJSXa2P66+l3YCqEEMjBN22Dz0chlJ4hKMW3rA2oISH6ryzIvNIiy4/djKEdmxFeBorp1vrbmAtBqE++afggzzGt5w4arkbQ4fWLXJwkC9+1y4irCgmX65CEb5ct+fRgG2/9/B0rYg==

 

2.5 解密方式

返回数据data内容是加密的,要用商户的公钥解密。

3. 身份证识别接口请求参数

3.1 公共请求参数

参数

类型

必填

最大长度

说明

app_id

String

Y

32

金润商务提供

method

String

Y

100

固定值:

"jinrun.id.card.ocr"

sign

String

Y

 

参见2加密方式

charset

String

Y

10

utf-8

format

String

Y

10

json

sign_type

String

Y

10

RSA2

version

String

Y

10

1.0

 

3.2 接口请求参数

参数

类型

必填

最大长度

说明

file

File

Y

 

身份证图片

biz_content

pageFlag

String

N

1

文件页标记

0表示单页双面1表示单页面主要用于复印件识别;默认为1

doQuality

String

N

1

是否进行质量评判

1表示执行,0表示不执行且后续所有质检属性字段无效,默认为1;跟是否识别doRec参数不能同时为0

judgedImag

String

N

1

是否返回矫正平铺后的身份证图片

1表示返回,0表示不返回且后续judgedImageWidthjudgedImageHeight,returnKeyPos无效;默认为0

judgedImageWidth

String

N

1

矫正平铺后的图片宽度

默认为0,0表示使用原始宽度;doQuality为1时有效

judgedImageHeight

String

N

1

矫正平铺后的图片高度

默认为0,0表示使用原始度;doQuality为1时有效

illumination

String

N

1

是否进行光照检测

1表示执行,0表示不执行。默认为1;doQuality为1时有效

definition

String

N

1

是否进行清晰度检测

1表示执行,0表示不执行。默认为1;doQuality为1时有效

occlusion

String

N

1

是否进行遮挡检测

1表示执行,0表示不执行;默认为1。doQuality为1时有效

hardCopy

String

N

1

是否进行复印件检测

1表示执行,0表示不执行;默认为1。doQuality为1时有效

returnKeyPos

String

N

1

是否在矫正平铺上的图上返回区域信息

1表示返回,0表示不返回;默认为0。doQuality为1时有效

doRec

String

N

1

是否进行识别

1表示执行,0表示不执行且后续所有识别属性字段无效。默认为1

faceImage

String

N

1

是否返回人脸图片

1表示返回,0表示不返回;默认为0。doRec为1时有效


4. 身份证识别接口响应参数

4.1 公共响应参数

参数

类型

说明

code

String

响应码,见附录6.1

request_id

String

请求Id

message

String

响应信息

timestamp

Long

时间戳

data

String

返回数据

 

4.2 接口响应参数

参数

类型

说明

sessionId

String

sessionId

statcode

String

状态码

state

String

识别内容(JSON字符串)

 

4.3 字段说明

字段名称

中文描述

备注

name

姓名

 

address

住址

 

sex

性别

 

nat

民族

 

birth

出生年月

 

number

身份证号

 

validDate

有效期限

 

issueUnit

签发机关

 

isValid

是否过期

0-已过期,1-未过期

idCardSide

身份证正反面标记

0-未知,1-正面,-1-反面

faceImg

身份证头像图片;base64编码格式

请求接口doRec和faceImage都上送为1返回

judgedImg

矫正后图片;base64编码格式

请求接口doQuality和judgedImage都上送为1返回

qualityResultSummary

质检整体效果

0-质量合格,-1-未进行质量评判,-2-缺边或缺角,-3-光照不合格,-4-清晰度不合格,模糊,-5-遮挡,-6-检测为复印件,-7-未检测到身份证区域

copiesCheck

复印件检测结果

1表示原件,0表示未检测,-1表示复印件

definitionCheck

清晰度检测结果

1表示清晰,0表示未检测,-1表示模糊

edgeAngleCheck

边角检测结果

1表示边角完整,0表示未检测,-1表示缺边或缺角

illuminationCheck

光照检测结果

1表示光照合格,0表示未检测,-1表示光照过亮或过暗

poorIlluminationField

光照不合格区域信息

可能的区域值为name,sex,

nation,birth,address,number,

issueUnit,validDate,face

occlusionCheck

遮挡检测结果

1表示无遮挡,0表示未检测,-1表示存在文字或头像遮挡

poorOcclusionField

遮挡区域信息

可能的区域值为name,sex,

nation,birth,address,number,

issueUnit,validDate,face

validRegionCheck

身份证有效性检测结果

1表示存在身份证,0表示未检测,-1表示非身份证图像

5. 身份证识别接口代码示例

5.1 请求示例

biz_content的json格式样例

{

"pageFlag":"1",

"doQuality":"0"

}

 

5.2 响应示例

{

    "request_id": "SN1594865659450363904",

    "code": "1700",

    "data": {

        "data": null,

        "resultInfoDTO": {

            "sessionId": "a42be9767221122092939666e7",

            "statcode": 1700,

            "state": "{\"nat\":\"汉\",\"address\":\"广州市越秀区越华路73号101房\",\"validRegionCheck\":\"1\",\"faceImg\":\"\",\"validDate\":\"\",\"definitionCheck\":\"1\",\"sex\":\"男\",\"birth\":\"1994年5月21日\",\"occlusionCheck\":\"1\",\"poorIlluminationField\":\"\",\"number\":\"44010419940521xxxx\",\"illuminationCheck\":\"1\",\"idCardSide\":\"1\",\"edgeAngleCheck\":\"1\",\"poorOcclusionField\":\"\",\"name\":\"林灝\",\"judgedImg\":\"\",\"copiesCheck\":\"1\",\"issueUnit\":\"\",\"qualityResultSummary\":\"0\"}"

        },

        "sessionId": null,

        "resultInfo": "{\"sessionId\":\"a42be9767221122092939666e7\",\"statcode\":1700,\"state\":\"{\\\"nat\\\":\\\"汉\\\",\\\"address\\\":\\\"广州市越秀区越华路73号101房\\\",\\\"validRegionCheck\\\":\\\"1\\\",\\\"faceImg\\\":\\\"\\\",\\\"validDate\\\":\\\"\\\",\\\"definitionCheck\\\":\\\"1\\\",\\\"sex\\\":\\\"男\\\",\\\"birth\\\":\\\"1994年5月21日\\\",\\\"occlusionCheck\\\":\\\"1\\\",\\\"poorIlluminationField\\\":\\\"\\\",\\\"number\\\":\\\"44010419940521xxxx\\\",\\\"illuminationCheck\\\":\\\"1\\\",\\\"idCardSide\\\":\\\"1\\\",\\\"edgeAngleCheck\\\":\\\"1\\\",\\\"poorOcclusionField\\\":\\\"\\\",\\\"name\\\":\\\"林灝\\\",\\\"judgedImg\\\":\\\"\\\",\\\"copiesCheck\\\":\\\"1\\\",\\\"issueUnit\\\":\\\"\\\",\\\"qualityResultSummary\\\":\\\"0\\\"}\"}",

        "statcode": null,

        "state": null,

        "queryInfo": null

    },

    "timestamp": 1669080587311

}

 

5.3 异常示例

 

{

"request_id":"SN1526464148450447360",

"code":"1790",

"data":{

"resultInfoDTO":{

"sessionId":"a454b4e2962205171526293f8a4",

"statcode":1790,

"state":""

}

},

"message":"",

"timestamp":1652772394628

}

}


6. 身份证识别接口附录

6.1 接口返回码

编码

描述

是否收费

1700

识别成功

收费

998

参数异常

免费

400

异常信息

免费

1790

比对错误

免费

1910

无效参数

免费

2022

非法参数

免费

9100

账户无费用

免费

9110

账户无权限

免费

9200

账户错误

免费

9202

无效IP

免费

9304

URL错误

免费

 

相关文章
|
SQL Java 数据库连接
使用Mybatis报错:java.lang.NullPointerException排查方案
使用Mybatis报错:java.lang.NullPointerException排查方案
2782 0
使用Mybatis报错:java.lang.NullPointerException排查方案
|
消息中间件 存储 Kafka
开源FaaS平台(二):Apache OpenWhisk
Apache OpenWhisk是一个开源FaaS平台,是一个由IBM和Adobe驱动的开源项目,可以部署在云或数据中心内。相比其他Serverless项目,OpenWhisk是一个健壮的、可扩展的平台,支持数千并发触发器和调用。OpenWhisk项目的基本信息如下表
1486 0
|
6月前
|
存储 监控 NoSQL
阿里云服务器ESSD云盘怎么样?ESSD云盘规格、计费与应用场景解析参考
阿里云ESSD云盘融合25GE网络与RDMA技术,为单个云盘提供高达100万随机读写性能,实现低时延,是阿里云在存储技术领域的重要成果。ESSD云盘规格多样,性能级别分PL0至PL3四档,满足不同业务需求,且性能随容量增加而提升。计费方式灵活,包括按量付费、包年包月及存储容量单位包。不同容量范围和性能级别,以及实例规格的存储I/O性能的差异可适应不同的应用场景,为用户提供稳定高效的存储支持。
|
API PHP C++
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
Windows下用vs2017编译和配置libcurl库(手把手教,适合新人)
3244 0
|
5月前
|
自然语言处理 Linux API
OpenClaw阿里云/本地喂饭级部署步骤+多模态落地手册:音视频转写、图文生成及免费模型配置教程
2026年,OpenClaw(Clawdbot)已从单一文本交互工具进化为支持多模态处理的综合AI执行平台,其核心突破在于实现了音视频、图文、文本的跨模态协同处理——无需复杂插件整合,即可通过自然语言指令完成语音转写、视频字幕生成、图片分析、图文创作等复杂任务。这种多模态能力彻底打破了传统工具的场景局限,使其在内容创作、办公自动化、知识管理等领域的实用性大幅提升。
1394 0
|
SQL 人工智能 大数据
新入互联网职场必考的6个大数据证书!含金量高+门槛低,新手速看
先选方向,再考证书:别盲目跟风!比如想做数据分析就优先考CDA,想进云计算赛道选阿里云。 实战>证书:证书只是敲门砖,企业更看重你的项目经验。考完证立刻用真实数据练手(如Kaggle竞赛)。 性价比至上:学生党优先选免费/低价证书(如IBM Data Science),工作党可冲高含金量证书(如CAIE)。
什么是幂等
幂等性指操作执行一次或多次结果一致。读操作(如HTTP GET)不改变数据,天然幂等;写操作(如POST、PUT、DELETE)可能改变状态,需额外机制保障幂等。
|
8月前
|
存储 弹性计算 固态存储
阿里云X86架构云服务器解析:实例规格、性能特点、适用场景与收费价格参考
阿里云服务器架构分为X86计算、Arm计算、高性能计算等多种架构,其中X86计算是用户选择最多的一种架构,阿里云x86架构ECS实例覆盖从通用计算到高性能、高内存、高网络吞吐的多样化业务需求,结合弹性伸缩与多种计费模式,可有效支撑企业核心业务创新与成本优化。本文为大家介绍阿里云X86计算架构的云服务器,包括包含的实例规格、其技术特性、适用场景、性能优势以及最新价格情况,以供参考。
1274 1
|
9月前
|
网络协议 算法 安全
Linux网络吞吐量优化(从零开始提升你的服务器网络性能)
本文介绍如何通过Linux系统调优显著提升网络吞吐量。涵盖TCP缓冲区调整、启用BBR拥塞控制、巨帧设置等实用技巧,帮助开发者和系统管理员优化高并发下的网络性能,即使新手也能快速上手并实现20%~300%的性能提升。
|
算法 索引 Python
使用遗传算法解决图着色问题
图着色任务可以简单概括为:为图中的每个节点分配一种颜色,并保证相连接的节点对不会使用相同的颜色,同时,我们希望使用尽可能少的颜色。本文使用遗传算法解决图着色问题。
2359 0
使用遗传算法解决图着色问题