LOGO

身份证文字识别

支持对身份证图片进行文字识别,返回详细的识别结果,支持多种图片格式

¥0.00(约0.00元每次)

套餐

新用户赠送套餐

¥0.00/5次

新用户特惠套餐

¥2.00/100次

标准套餐

¥24.00/1000次

进阶套餐

¥230.00/10000次

特价套餐

¥2200.00/100000次

立即申请
API介绍
对接文档
示例代码
接口测试
功能介绍
信息识别
支持对居民身份证件双面的关键信息识别,包括姓名、身份证号码、性别、出生日期等关键信息
多场景适配
支持移动端、PC 端多平台调用,广泛适用于金融开户、政务办理、酒店入住等场景,将原本 5 分钟的录入流程压缩至 10 秒
服务稳定高效
7X24小时数据稳定、极速响应
准确率
>98%
响应时间
约1秒
计费方式
根据结果计费
应用场景
金融行业
自动完成用户证件识别,减轻内部人员工作量,提升审核的准确性和效率
身份验证
网站或应用可以对用户身份证进行OCR识别,快速验证用户提供的身份证信息的真实性
酒店入住
自助入住集成 OCR 识别,旅客刷证瞬间完成信息采集与比对,实现 "零接触" 快速入住
使用流程
注册、登录
注册并登录您的账号
立即注册
完成实名认证
进行个人或企业认证
申请和调试API
申请API和完成测试调试请求
购买和上线使用
充值购买套餐,正式在您的系统集成上线使用API
服务保障
稳定高效
提供高可用、低延迟的服务,实施严格的安全措施,确保业务的稳定运行和数据安全
服务完善
专业团队提供全方位的售前和售后服务,随时解决您的疑问和问题
合规安全
严格遵守数据保护法规,官方直连获取数据,确保数据的合法、合规。
持续更新
提供多样接口,并持续更新,以满足您不断变化的业务和商业需求。
身份证文字识别
请求路径
POST
接口说明
支持对身份证图片进行文字识别,返回详细的识别结果,支持多种图片格式
请求信息
请求头
Content-Type
application/x-www-form-urlencoded
Auth_Token
签名结果,具体请查看签名规则
Sign_Type
签名结果,具体请查看签名规则
请求参数说明
响应参数
响应参数说明
响应示例
成功响应
{
    "code": 0,
    "msg": "操作成功",
    "result": {
        "address": "广东省xx市xx区xx镇xx村xx号",
        "birth": "19901005",
        "cardNum": "441234567890123456",
        "createTime": "2025-04-29 18:19:46",
        "direction": "",
        "expiryDate": "",
        "imageStatus": "normal",
        "issuingAuthority": "",
        "issuingDate": "",
        "name": "张三",
        "nation": "汉",
        "orderId": "202504160946",
        "orderNumber": "512025042980000000532234",
        "riskType": "normal",
        "sex": "男"
    }
}
失败响应
{
    "code": 400,
    "msg": "业务处理失败,请稍侯重试",
    "result": null
}
签名规则
所有的主动请求的接口都需要在请求头中传入签名值,需要设置的2个请求头名称:Auth_Token和Sign_Type。下面是分别介绍2个请求头的数据签名规则。 公共参数如下:
第一步:将以上公共参数按以下顺序拼接,并md5加密后小写后传入到signMd5中。 "memberId={memberId}dateTime={dateTime}version={v1}key={appKey}"
第二步:将公共参数按json格式数据设置到请求头Auth_Token中。 例如: Auth_Token={"signMd5":"11c636b1e98c1949768b0117a437145d","version":"v1","dateTime":"1744613181613","memberId":"80000001"}
第三步:并且在请求头中设置签名方式,名称为:Sign_Type。目前系统支持的签名方式有:md5。 例如:Sign_Type=md5
响应码
响应码说明
身份证文字识别
Java
Python
复制代码
package com.example.api.V105;

import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;

import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;

import static org.junit.jupiter.api.Assertions.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.io.*;
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.util.*;
import java.util.stream.Collectors;
import java.util.Base64;

public class ApiTest1047 {

    // 签名相关的常量
    private static final String SIGN_KEY = "XXXXXX"; // 替换为实际的签名密钥
    private static final String USER_ID = "XXXXXXX"; // 替换为实际的用户编号

    public static void main(String[] args) throws Exception {
        String apiUrl = "https://api.slsj.com/api/ocr/id-card/query";
        String orderId = "1047001";
        String ocrType = "0";
        String imageType = "URL";
        String detectRisk = "false";
        String image = "https://oss.aliyun.com/xxx.jpg";
   
        // 准备请求参数
        Map<String, Object> params = new HashMap<>();
        params.put("orderId", orderId);
        params.put("ocrType", ocrType);
        params.put("imageType", imageType);
        params.put("detectRisk", detectRisk);
        params.put("image", image);

        testVerification(apiUrl, params);
    }

    // 获取Auth_Token的方法
    private static String getAuthToken() throws Exception {
        // 获取当前时间戳
        long timestamp = System.currentTimeMillis();

        // 按照文档拼接待加密字符串
        String toEncrypt = "memberId=" + USER_ID + "dateTime=" + timestamp + "version=v1" + "key=" + SIGN_KEY;

        // MD5加密
        MessageDigest md = MessageDigest.getInstance("MD5");
        byte[] digest = md.digest(toEncrypt.getBytes(StandardCharsets.UTF_8));
        String md5Result = bytesToHex(digest).toLowerCase();

        // 创建鉴权Token的JSON对象
        JSONObject authTokenObj = new JSONObject();
        authTokenObj.set("memberId", USER_ID);
        authTokenObj.set("dateTime", timestamp);
        authTokenObj.set("version", "v1");
        authTokenObj.set("signMd5", md5Result);
        
        String authToken = authTokenObj.toString();
        return authToken;
    }

    // 辅助方法:将字节数组转换为十六进制字符串
    private static String bytesToHex(byte[] bytes) {
        StringBuilder result = new StringBuilder();
        for (byte b : bytes) {
            result.append(String.format("%02x", b));
        }
        return result.toString();
    }

    public static void testVerification(String apiUrl,Map<String, Object> params) throws Exception {        
        // 获取鉴权Token
        String authToken = getAuthToken();
        
        // 发送请求
        HttpResponse response = HttpRequest.post(apiUrl)
            .header("Content-Type", "application/x-www-form-urlencoded")
            .header("Auth_Token", authToken)
            .header("Sign_Type", "md5")
            .form(params)
            .execute();
        
        // 输出响应结果
        int status = response.getStatus();
        String responseBody = response.body();
        
        System.out.println("响应状态码: " + status);
        System.out.println("响应内容: " + responseBody);
        
        // 验证响应码
        assertEquals(HttpURLConnection.HTTP_OK, status, "Response code should be 200");
        
        // 解析响应内容(假设响应是JSON格式)
        // JSONObject responseJson = JSONUtil.parseObj(responseBody);
    }
} 
复制代码
import hashlib
import json
import time
import requests

# 用户ID和密钥
user_id = "xxxxxx"  # 替换为实际的用户编号
signature_key = "xxxxxxxxxxxxxxx"   # 替换为实际的签名密钥

# 版本号
version = "v1"


# 生成加密签名
def generate_auth_token():
    query_time = int(time.time() * 1000)
    original_string = f'memberId={user_id}dateTime={query_time}version={version}key={signature_key}'
    md5_result = hashlib.md5(original_string.encode('utf-8')).hexdigest()
    auth_token = {
        "memberId": user_id,
        "dateTime": query_time,
        "version": version,
        "signMd5": md5_result

    }
    return auth_token


# 请求接口并打印响应结果
request_url = 'https://api.slsj.com/api/ocr/id-card/query'
params = {
    "orderId": "20250416094659001",
    "imageType": 'URL',
    "image": "xxxxxxxxxxxxxxx.png",	# 图片URL地址
    "ocrType": '0',
    "detectRisk": None

}

headers = {'Content-Type': 'application/x-www-form-urlencoded', 'Auth_Token': json.dumps(generate_auth_token()),
           'Sign_Type': 'md5'}
response = requests.post(headers=headers, url=request_url, data=params)
if response.status_code == 200:
    print(response.json())
else:
    print(response.text)
APILOGO

身份证文字识别

ID:642

申请次数

33

收藏次数

18

认证要求

个人
企业

场景审核

不需要

联系方式

联系电话:

400-000-6665

联系邮箱:

suilian@suiliantech.com

在线客服: