零工系统企业认证:营业执照 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万元整"这种带着"万元整"三个字。存库前得自己清洗转换,不然排序、统计全废。还有 EstablishDate 是 20221108 这种紧凑格式,入库要转成标准日期。

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

相关推荐
智_永无止境17 小时前
又找到一个纯Java的OCR项目,识别的格式还挺多
java·开发语言·ocr
yiyideda18 小时前
高效的医疗票据OCR+查验怎么做?字段补全、可信标注与查验返回结构
计算机视觉·ocr·医疗票据识别·医疗ocr·医疗发票查验·项目审核
OCR_1337162127520 小时前
户外强光下护照OCR为什么崩?从ISP到边缘AI,拆一下ER阅读器的抗眩光架构
人工智能·ocr·接口隔离原则
rich_Chan.21 小时前
阿里云百炼联网搜索教程:web_search 工具开启方法、web_extractor 网页抓取与 json 检索轨迹
前端·阿里云·json
Agent世界21 小时前
百度OCR 2开源:KV缓存从47GB压到1.77GB
百度·缓存·开源·大模型·ocr
开开心心就好1 天前
免安装PDF盖章工具,透明度和位置可调
运维·服务器·前端·javascript·pdf·ocr·1024程序员节
五花马印务2 天前
从数字化角度谈:老谱 OCR 识别、异体字造字与世系数据结构化
ocr
Lvan的前端笔记2 天前
阿里云CDN
阿里云·云计算
小豆庄2 天前
AI换脸能骗过检测,视频脱敏为什么该回到本地
人工智能·yolo·阿里云·ai·ocr·视频
AI人工智能+2 天前
智能文档抽取系统通过“OCR+大模型”双引擎,实现从图像到结构化数据的精准转化,突破传统OCR仅识别文字的局限
自然语言处理·ocr·大语言模型·文档抽取