零工系统企业认证:营业执照 OCR 识别,阿里云这个接口我调了一下午

零工系统企业认证:营业执照 OCR 识别,阿里云这个接口我调了一下午

导读:零工/招聘系统里,企业发岗位前得先过认证------营业执照得验真吧。人工审核慢,用户吐槽;全自动又怕假执照。后来接了个折中方案:先用阿里云 OCR 把执照信息抽出来自动填表,再人工看一眼关键字段。这篇记录接口接入的坑,尤其是 Advance 接口那个大坑。

为什么不用人工录入

一开始企业注册是手填:公司名、统一社会信用代码、法人、注册资本、成立日期......填一屏,错一屏。用户烦,审核的人更烦------得对着营业执照照片逐字核对。

后来决定上 OCR,让用户传张执照照片,信息自动带出来,能改但不用重填。审核那边也轻松,机器识别 + 人眼复核双保险。

接口接入:先看官方示例

阿里云 OCR 的营业执照识别,文档里给了两种调法:

  • recognizeBusinessLicenseWithOptions:传图片 URL,要求 URL 能被公网访问
  • recognizeBusinessLicenseAdvance:传图片流(InputStream),走文件直传
java 复制代码
// 场景一:传本地文件/流(Advance 接口)
InputStream inputStream = url.openConnection().getInputStream();
RecognizeBusinessLicenseAdvanceRequest request = new RecognizeBusinessLicenseAdvanceRequest()
        .setImageURLObject(inputStream);
client.recognizeBusinessLicenseAdvance(request, runtime);

// 场景二:传公网 URL
RecognizeBusinessLicenseRequest request = new RecognizeBusinessLicenseRequest()
        .setImageURL(imgUrl);
client.recognizeBusinessLicenseWithOptions(request, runtime);

坑一:图片在 OSS 私有桶,URL 接口直接挂

我们图片是传 OSS 私有桶的,签名 URL 倒也能访问,但签名有效期一过就 403 。而且 WithOptions 版本对图片大小、格式卡得挺死,传个手机拍的 5MB 照片,分分钟给你超时。

最后统一走了 Advance 接口------后端拿到图片流直接传,不走公网 URL,稳定太多。代价是要先把 OSS 对象拉成 InputStream,多一步而已。

坑二:endpoint 不是你想当然那个

官方默认的 endpoint 写的是 ocr.cn-shanghai.aliyuncs.com,但你的 OSS 可能在别的区。当时我把 OSS 华东一、OCR 华东二混着配,接口时好时坏,排查半天才发现是区域不一致。OCR 服务本身和 OSS 区域无关,但建议放同一区,网络延迟和故障面都小。

java 复制代码
Config config = new Config()
        .setAccessKeyId(accessKeyId)
        .setAccessKeySecret(accessKeySecret);
config.endpoint = "ocr.cn-shanghai.aliyuncs.com";

坑三:识别结果别直接信,尤其注册资本

OCR 返回的字段挺全:Name(公司名)、RegisterNumber(统一社会信用代码)、LegalPerson(法人)、Capital(注册资本)、EstablishDate(成立日期)、ValidPeriod(有效期)、Business(经营范围)。

但注意,Capital 是字符串,不是数字 ------"100万元整"这种带着"万元整"三个字。存库前得自己清洗转换,不然排序、统计全废。还有 EstablishDate20221108 这种紧凑格式,入库要转成标准日期。

json 复制代码
{
  "Data": {
    "Name": "无锡道源景观工程服务有限公司",
    "RegisterNumber": "91320214MAC3EH9U7L",
    "LegalPerson": "芮莹",
    "Capital": "100万元整",
    "EstablishDate": "20221108",
    "ValidPeriod": "29991231",
    "Business": "一般项目:园林绿化工程施工;土石方工程施工;...",
    "Type": "有限责任公司(自然人投资或控股)"
  }
}

坑四:AK 权限要给对

官方示例说用 RAM 子账号,要给 AliyunVIAPIFullAccess 权限。实际生产环境建议只授 OCR 相关权限 ,别一把梭给 AliyunFullAccess。我们线上就因为这个被安全扫描揪出来过,血泪教训。

说点实在的

OCR 不是万能的。执照照片歪一点、反光、模糊,识别率就掉。我们的策略是识别结果只做预填,提交前让用户确认一遍,后台再保留人工复核入口。机器提效、人工兜底,这套组合拳下来,企业认证通过率明显上来了,审核时间从原来的几分钟缩到几十秒。

项目源码(日结零工系统):https://gitee.com/gzqkl/xllg

相关推荐
晨曦_子画15 小时前
Qwen 3.8 27B 与 Qwen 3.6 27B:架构相同,相隔4个月,升级方式不同
阿里云·ai·千问
苏苏susuus18 小时前
核密度估计(KDE)与高斯核(概念分享)
人工智能·python·ocr
庖丁AI1 天前
PDF跨页表格提取后错列怎么办?先检查表头、续行和单位
pdf·ocr·文档解析·表格解析
聚搜云——JuSouClouD2 天前
在阿里云代理商渠道买轻量服务器,带宽套餐支持自选吗?
服务器·阿里云·云计算
聚搜云——JuSouClouD2 天前
2026找阿里云代理商采购GPU服务器,有没有额外折扣?
服务器·阿里云·云计算
运维栈记2 天前
使用 MinIO Client (mc) 将自建 MinIO 数据备份至阿里云 OSS
运维·阿里云
AI人工智能+2 天前
了一种融合OCR与大模型的文档抽取系统,解决传统OCR“识字不识意”的痛点
深度学习·计算机视觉·语言模型·自然语言处理·ocr·文档抽取