当前位置: 首页 > news >正文

营业执照识别 API 最小可运行示例:从请求到解析返回字段

适用场景与接口能力边界

在企业资质核验、合规审查、供应商管理、电商入驻审核等场景中,经常需要从营业执照图片中自动化提取关键字段。本文介绍的营业执照识别 API 支持将 JPG/PNG 图片(URL 或 base64 编码)上传后,返回统一社会信用代码、公司名称、法定代表人、准备资本、经营范围等 12 个字段。接口单次请求仅处理一张图片,文件大小上限为 10 MB,图片建议清晰完整无遮挡,以保证识别精度。

能力边界

  • 支持图片传入方式:URL 或 base64(base64 字符串最大 10 MB)
  • 输出字段:共 12 个,详见下文返回值解读
  • QPS:2 次/秒,超过后会返回限流错误
  • 延迟:通常 1~3 秒(视图片大小和网络而定)

鉴权与请求头

调用前需准备 API Key。在请求时通过 HTTP 头Authorization传递,格式为Bearer <你的 API Key>。同时必须设置Content-Typeapplication/json

Authorization: Bearer sk-xxxxxxxxxxxxxxxx Content-Type: application/json

请求参数详解

请求体是单个 JSON 对象,包含两个必填字段:

字段名类型必填说明
input_typestring图片传入方式,固定值"url""base64"
input_datastring图片 URL 或 base64 编码字符串(去掉 data:image/...;base64, 前缀)

示例:使用 URL 传入

{ "input_type": "url", "input_data": "https://example.com/business-license.jpg" }

示例:使用 base64 传入

{ "input_type": "base64", "input_data": "/9j/4AAQSkZJRgABAQAAAQABAAD/2wBD..." }

base64 编码需去掉前缀data:image/jpeg;base64,data:image/png;base64,,仅保留纯 base64 字符串。

最小可运行示例(curl)

以下命令是完整的可复制请求(需替换$API_KEY与图片 URL):

curl -sS \ -X POST \ -H "Authorization: Bearer $API_KEY" \ -H "Content-Type: application/json" \ -d '{ "input_type": "url", "input_data": "https://img.example.com/license.jpg" }' \ "https://v1.apizero.cn/api/business-license"

$API_KEY替换为真实的 API Key,input_data替换为可访问的图片 URL 即可。如果希望更安全地传递环境变量,也可以使用-H "X-API-Key: $API_KEY"(具体鉴权方式以文档为准,本例使用 Authorization Bearer 方式)。

Python 请求示例(requests 库)

import requests import json url = "https://v1.apizero.cn/api/business-license" headers = { "Authorization": "Bearer YOUR_API_KEY", "Content-Type": "application/json" } payload = { "input_type": "url", "input_data": "https://img.example.com/license.jpg" } response = requests.post(url, headers=headers, json=payload) print(response.json())

返回结果解读

成功时 HTTP 状态码为 200,响应体 JSON 如下:

{ "code": 0, "msg": "成功", "request_id": "req_abc123", "data": { "unified_social_credit_code": "91310000XXXXXXXXXX", "company_name": "某某科技有限公司", "legal_representative": "张三", "registered_capital": "100万人民币", "established_date": "2015-06-01", "business_scope": "软件开发;信息技术咨询服务", "company_type": "有限责任公司(自然人独资)", "domicile": "上海市浦东新区某某路123号", "certificate_type": "营业执照", "establishment_period": "2015-06-01至无固定期限", "approval_date": "2025-01-10", "website": "http://www.gsxt.gov.cn" } }

各字段含义:

字段示例值说明
unified_social_credit_code91310000XXXXXXXXXX统一社会信用代码(18 位)
company_name某某科技有限公司企业全称
legal_representative张三法定代表人姓名
registered_capital100万人民币准备资本及币种
established_date2015-06-01成立日期(格式 yyyy-MM-dd)
business_scope软件开发;信息技术咨询服务经营范围(分号分隔)
company_type有限责任公司(自然人独资)企业类型
domicile上海市浦东新区某某路123号住所/准备地址
certificate_type营业执照证件类型(固定值)
establishment_period2015-06-01至无固定期限营业期限
approval_date2025-01-10最近核准日期(可能为空)
websitehttp://www.gsxt.gov.cn企业信用信息公示系统链接(可选)

注意:request_id是本次请求的唯一标识符,可配合日志排查问题。code为 0 表示成功,非 0 值见下文错误处理。

常见错误码与排查要点

错误现象可能原因处理方式
HTTP 401 返回{"code":401,"msg":"无效的 API Key"}API Key 未传或错误检查Authorization头格式及 Key 有效性
HTTP 403请求被拒绝,可能是 IP 白名单限制确认请求源 IP 已加入白名单(以文档为准)
HTTP 400 返回{"code":400,"msg":"参数错误"}input_type不是 url/base64,或input_data为空校验请求体 JSON 格式及字段值
HTTP 413 或返回图片过大图片超过 10 MB压缩图片或使用 URL 方式代替 base64(base64 编码后体积增大约 37%)
返回code: 1001等业务错误码(具体参见文档)图片模糊、文字遮挡、非营业执照等更换清晰图片,保持图像中无反光、倾斜

code不为 0 时,msg会给出简要描述。建议读取request_id后联系技术支持时引用。

工程化注意事项

  1. 图片质量:营业执照应占图片主体,四角完整,文字清晰。建议分辨率不低于 1024×768。格式优先使用 JPG(平衡质量和文件大小)。

  2. base64 转换时机:如果 base64 图片来自前端上传,后端接收后直接传给 API,注意去掉 data URL 前缀(data:image/jpeg;base64,),否则 API 解析会失败。

  3. 限流处理:QPS 上限为 2,建议在代码中加入退避重试机制(如指数退避)。对于批量场景(如一次审核 100 张),可以控制并发数≤2,或使用队列逐步消费。

  4. 字段校验:返回的字段由 OCR 识别得到,可能因图片质量问题导致个别字段为空或格式不标准。业务逻辑中应做空值判断,不要假设所有字段都存在。例如approval_date可能为空。

  5. 数据安全:营业执照图片涉及企业隐私,传输建议使用 HTTPS,base64 编码不应写入日志。API Key 应存储在环境变量或密钥管理服务中,避免硬编码。

  6. 缓存策略:如果同一张图片需要多次识别(例如前后两次查询),可对图片的哈希值进行缓存,减少重复请求。注意图片内容更新时应清除缓存。

参考文档

  • 营业执照识别 API 文档
  • 原始文档(raw markdown)

文档中包含完整的错误码列表、更多语言 SDK 示例及更新说明。

http://www.cnnetsun.cn/news/3327742.html

相关文章:

  • 高精度ADC与PIC微控制器的工业测量系统设计
  • 如何彻底卸载FanControl?5步完全清理Windows风扇控制软件
  • 【OpenSpec】openspec\config.yaml 项目中config.yaml是如何使用的
  • 免费解锁WeMod专业版:Wand-Enhancer终极方案完全指南
  • 【OpenSpec】/opsx:archive 的作用是什么解析
  • H3C 交换机 VLAN 间路由实战:3步配置子接口与 DHCP 中继实现全网互通
  • ROS2 Service核心原理与生产级实践指南
  • 填坑:LazyForEach 数据更新了,为什么界面没反应?
  • AI驱动的C++跨平台迁移:从语义理解到自动化代码重构
  • 实测GPT-5.6,跑分赢了,却输给了Fable 5
  • UNIX 网络编程 30 种服务器模型对比:从迭代到预线程,性能与复杂度分析
  • FFmpeg 6.1.6 Windows 编译:MSYS2 + MSVC 2022 生成带 PDB 调试符号的 3 种方案
  • 2026数据分析师学习路径:Excel/SQL/PowerBI/Python实战指南
  • VC++实现MFCC语音特征提取:从原理到工程实践
  • Python实现RAR密码恢复:从字典攻击到多进程并行破解
  • GSNode 探针检测报告参数全解读:系统、IP、网络、回程四大板块每一项指标是什么意思
  • BG3ModManager:博德之门3模组管理的最佳解决方案
  • py每日spider案例之最新pdd加密参数anti_content逆向
  • 深入解析CAS:从硬件原理到C++无锁编程实战
  • ESP-Drone:百元级开源无人机开发平台的技术革命
  • Windows服务器的智能安全守护者:Wail2Ban如何自动化防御暴力破解
  • S16.6第一性原理做产品(6·收官):从《定位》到“品类设计“——AI时代如何定义新品类
  • STM32与固态继电器实现高效直流负载管理方案
  • 装修公司底层逻辑与闭口合同机制:2026年天津家装选型技术分析
  • LV3296与PIC18F86J55嵌入式条码扫描系统开发指南
  • STM32L496ZG开发板与直流电机控制实战指南
  • 树莓派3 NOOBS安装全指南:硬件适配、SD卡选型与稳定启动
  • GPT-5.6 Sol 技术分析:它真正升级的不是“聊天能力”,而是长任务执行能力
  • 生产管理工作内容详解:从规划到绩效的全面指南
  • ROS map_server原理与实战:静态地图加载核心机制解析