API Path
/aipaas/ocr/v1/identify/esignature
请求协议
HTTPS
请求方法
POST
请求头部:
| 头部标签 | 必填 | 说明 | 类型 | 数据字典 | 限制 | 头部内容 | 示例 |
|---|---|---|---|---|---|---|---|
| Content-Type | 是 | application/json | [string] | application/json | application/json | ||
| X-APP-ID | 是 | 买家中心-已购能力-【X-APP-ID】 | [string] | ||||
| Device-Uuid | 否 | 设备管理-设备uuid | [string] | ||||
| Authorization | 是 | 鉴权信息 | [string] |
请求参数 Json
Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| seq_id | 请求序列号,请求的唯一标识 | 是 | [string] | |||
| task_id | 能力编号 50003,填写其他的值报错; | 是 | [int] | |||
| image | base64编码或url,根据image_type确定输入类型;一次可以请求多张大图;如果请求多张大图,其中有张大图失败会整体返回失败 | 是 | [array] | |||
| image_type | (公网用户目前只能使用base64数据)图片类型,0表示image输入url, 1表示image输入base64;只能输入0或者1 | 是 | [int] |
响应内容:
返回结果
> 成功 (200)
> Json
> Object
| 参数名 | 说明 | 必填 | 类型 | 数据字典 | 限制 | 示例 |
|---|---|---|---|---|---|---|
| seq_id | 请求序列号,uuid,请求的唯一标识 | 否 | [string] | |||
| send_pts_ms | 时间戳 | 否 | [long] | |||
| code | 状态响应码 | 否 | [string] | |||
| message | 调用结果描述 | 否 | [string] | |||
| task_id | 能力编号,与输入相同 | 否 | [int] | |||
| flag | 业务上成功或失败:1成功,0失败 | 否 | [int] | |||
| data | 返回结果字典 | 否 | [object] | |||
| data>>status | 0:未开始 1:执行中 2:执行成功 3:执行失败 | 否 | [int] | |||
| data>>task_result | 签名识别结果 | 否 | [object] | |||
| data>>task_result>>out_text | 第一张图片结果,"丁建英" | 否 | [string] | |||
| data>>task_result>>out_text_list | 多张图片的结果,string数组 | 否 | [array] |
成功示例[Mock API]:
{
"seq_id": "shouxietiqianming",
"send_pts_ms": 1745432786237,
"code": "10000",
"message": "服务执行成功",
"task_id": 50003,
"flag": 1,
"data": {
"status": 2,
"task_result": {
"out_text": "丁建英"
}
}
}
详细说明:
基于深度学习技术,提供签名稽核能力。
v2.1.0
新增支持图片保存模式为P、L、CMYK等
| 模式 | 说明 |
|---|---|
| 1 | 1 位像素(二值图像),黑白,每个像素占 1 字节(实际仅用 1 位)。 |
| L | 8 位像素(灰度图),每个像素用 0-255 表示亮度。 |
| P | 8 位像素(调色板模式),每个像素存储调色板的索引,调色板映射到其他模式(如 RGB)。 |
| RGB | 3×8 位像素(真彩色),每个像素由红、绿、蓝三个通道组成(各 0-255)。 |
| RGBA | 4×8 位像素(带透明度的真彩色),在 RGB 基础上增加 Alpha 通道(0-255,0 表示透明)。 |
| CMYK | 4×8 位像素(印刷色模式),由青、洋红、黄、黑四个通道组成。 |
| YCbCr | 3×8 位像素(视频色彩空间),亮度(Y)、蓝色差(Cb)、红色差(Cr)。 |
| LAB | 3×8 位像素(Lab 色彩空间),用于颜色校正和科学计算。 |
| HSV | 3×8 位像素(色调 - 饱和度 - 亮度空间),色调范围 0-255 对应 0-360 度。 |
| I | 32 位有符号整数像素,用于存储科学数据(如卫星影像)。 |
| F | 32 位浮点像素,用于高精度图像处理(如医学影像)。 |
v2.0.0
| 日期 | 版本 | 修订内容 |
|---|---|---|
| 2025-10-13 | v2.1.0 | 修改状态码 |
| 2025-09-22 | v2.0.2 | 修改入参image字段说明 |
| 2025-09-19 | v2.0.1 | 修改部分字段说明 |
| 2025-09-15 | v2.0.0 | 增加版本功能说明;出参增加out_text_list字段,image一次可请求多张大图 |
| 2025-01-16 | v1.6.5.6 | 初始化API文档 |
服务接口调用时需要严格遵循服务鉴权规则,服务调用鉴权规则请参见:开发指南 - 接口签名认证。
| 返回编码 | 说明 |
|---|---|
| 10000 | 服务执行成功 |
| 10301 | 服务必填参数缺失 |
| 10304 | 请求参数格式错误 |
| 10903 | 服务执行失败 |
通用状态码请参考【状态码】中的【网关认证】
{
"seq_id": "26f2739a-6e0f-11e8-bc7a-58fb8443ee27",
"task_id": 50003,
"image_type": 1,
"image": [" /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKB ……/4Q+z+COm+LLTxnZzXIvRqEutX9lLa"]
}
import cn.hutool.http.HttpRequest;
import cn.hutool.http.HttpResponse;
import cn.hutool.json.JSONUtil;
import java.util.HashMap;
import java.util.Map;
/** 主类,用于发起HTTP请求并处理响应 */
public class Example {
public static void main(String[] args) {
example();
}
/**
* 方法中使用到的 JSONUtil、HttpRequest、HttpResponse均来自Hutool工具类。
* 具体maven依赖为:
*
* cn.hutool
* hutool-all
* 5.8.29
*
*/
public static void example() {
try {
String url = "算法调用地址";
// 设置请求头
Map headers = new HashMap();
//调用鉴权
headers.put("Content-Type", "application/json");
headers.put("X-APP-ID", "yourAppId");
headers.put("Authorization", "yourAuthorization");
// 创建请求对象
Map request = new HashMap();
request.put("seq_id", "26f2739a-6e0f-11e8-bc7a-58fb8443ee27");
request.put("task_id", 50003);
request.put("image_type", 1);
request.put("image", " /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKB/4Q+z+COm+LLTxnZzXIvRqEutX9lLa ");
// 将请求对象转换为JsonNode
String requestString = JSONUtil.toJsonStr(request);
// 发起HTTP请求
HttpResponse response =
HttpRequest.post(url)
.headerMap(headers, true)
.body(requestString)
.execute();
// 输出响应结果
System.out.println(response.body());
} catch (Exception e) {
e.printStackTrace();
}
}
}
import json
import hashlib
import hmac
import time
import re
import urllib.parse
import requests
import warnings
from datetime import datetime
import logging
# 配置日志,设置日志级别为INFO,并指定日志格式
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
# 配置环境变量
X_APP_ID = "yourAppId"
Device_Uuid= "yourDeviceUuid"
AUTHORIZATION = "yourAuthorization"
# URL 和请求数据
url = "算法调用地址" # 请求的URL
request_data = { "seq_id": "26f2739a-6e0f-11e8-bc7a-58fb8443ee27",
"task_id": 50003,
"image_type": 1,
"image": " /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKB ……/4Q+z+COm+LLTxnZzXIvRqEutX9lLa "
}
# 构建请求头
headers = {
"Content-Type": "application/json",
"X-APP-ID": X_APP_ID,
"Authorization": AUTHORIZATION
}
def timeSimple(timestamp):
# 将时间戳转换为HH:MM:SS格式的时间字符串
dt_object = datetime.fromtimestamp(timestamp)
formatted_time = dt_object.strftime("%H:%M:%S")
return formatted_time
def send_request(url):
try:
start_time = time.time()
logging.info(f"请求路径: {url}")
logging.info(f"开始发送: {timeSimple(start_time)}")
with requests.post(
url, json=request_data, headers=headers, stream=True, verify=False
) as response:
first_packet_time = None
if response.status_code == 200:
logging.info(f"接受到返回: {timeSimple(time.time())}")
for chunk in response.iter_content(chunk_size=1024):
if chunk:
if first_packet_time is None:
first_packet_time = time.time()
logging.info(
f"Received chunk: {timeSimple(time.time())} {chunk.decode('utf-8')}"
)
end_time = time.time()
logging.info(f"Time to first byte (TTFB): {first_packet_time - start_time:.3f} seconds")
logging.info(f"Request completed in {end_time - start_time:.3f} seconds")
else:
logging.error(f"Request failed with status code {response.status_code}")
except Exception as e:
logging.error(f"An error occurred: {e}")
# 发送请求
send_request(url)
logging.info(f"headers = {headers}")