增值税发票识别PDF版
1.简介
1.1 场景简介
很多情况下需要对上传的增值税发票进行识别,并将发票的相关数据返回到字段中存储以便后续统计计算。
但供应商开具的发票很多时候都是 PDF 版本的,因此,需要采用支持 PDF 的 OCR 接口进行处理。
本文将通过支持 PDF 的 OCR 识别接口及简道云前端事件,为您详细讲解 PDF 版的发票如何在前端被识别出来。
1.2 预期效果
点击测试:PDF 发票识别demo
注:PDF 版发票识别接口有些许延迟,上传后请耐心等待数据返回。
2. 购买接口
首先我们需要找到一个支持 PDF 识别的增值税发票 OCR 接口,我们以阿里云官方提供的接口为例,讲解如何在简道云的前端事件中配置:点击进入阿里云市场购买接口
我们先购买一个 100 次的 1 分钱体验版本,可以在云市场中看到我们刚刚购买的接口。
3. 接口分析
接下来,点击接口,往下翻到 API 接口的详情介绍,选择「PDF 电子发票查验 V2」这个接口调用地址进行分析。
【调用地址】:http(s)://fapiao.market.alicloudapi.com/v2/invoice/pdf
【请求方式】:POST
【返回类型】:JSON
【请求的Headers】:Authorization: APPCODE + 你自己的 APPCODE(服从阿里云云市场的标准鉴权方式)
格式如下:
Authorization:APPCODE AppCode值
【请求body】
可以是 pdf 的 url 或者 base64 编码:
名称 | 类型 | 是否必须 | 描述 |
pdfBase64 | STRING | 可选 | Base64编码的发票PDF文件,不包含前缀data:image/jpg;base64, |
pdfUrl | STRING | 可选 | PDF电子发票链接地址 |
正常返回示例:
{
"success": true,
"code": 0,
"data": {
"fpdm": "发票代码",
"fplx": "发票类型",
"fphm": "发票号码",
"kprq": "开票日期",
"xfMc": "销售方名称",
"xfNsrsbh": "销售方纳税人识别号",
"xfContact": "销售方联系方式",
"xfBank": "销售方开户行",
"gfMc": "购方名称",
"gfNsrsbh": "购方纳税人识别号",
"gfContact": "购方联系方式",
"gfBank": "购方开户行",
"code": "发票校验码",
"num": "发票机器码",
"del": "是否作废",
"taxamount": "税额合计",
"goodsamount": "价格合计",
"sumamount": "价税合计",
"quantityAmount": "数量合计",
"updateTime": "更新时间",
"queryCount": "税局查验次数",
"remark": "备注",
"goodsData": [
{
"name": "名称",
"spec": "规格",
"unit": "单位",
"amount": "数量",
"priceUnit": "单价",
"priceSum": "金额",
"taxRate": "税率",
"taxSum": "税额"
}
]
}
}
4. 设置表单
根据需要返回的内容设置表单字段。
添加一个附件字段,更改名称为「增值税发票」,作为前端事件的触发字段。
在添加多个单行文本字段,用于将发票上面需要识别的内容一一填进来,需要识别发票上的哪些信息就填写多少个字段。
发票的详细内容需要采用子表单,然后在子表单中拖入几个单行文本字段用于填充发票上的具体内容。
子表单中的内容对应发票中的下述内容。
5. 设置前端事件
表单上的设计内容参考发票中的内容来设计,需要多少内容就添加多少字段。
5.1 配置入口
添加好了以后,即可在表单属性中配置前端事件。
5.2 事件名称&触发设置
点击添加「前端事件」后,先为前端事件设置名称信息及触发字段。触发字段选择表单中添加的附件字段(增值税发票)。
5.3 请求设置
根据【3.接口分析】章节,依次设置下列参数:
- 请求类型:POST
- URL:https://fapiao.market.alicloudapi.com/v2/invoice/pdf
- hearder:Authorization=APPCODE+自己的 APPCODE
- Body:x-www-form-urlencoded
- pdfUrl=插入字段「增值税发票」
- 返回值格式:JSON
自己的 APPCODE 需要前往云市场中查找复制。
设置完上述参数参数,最后设置返回值。
点击设置,并添加所有字段。
根据 Json Path 规则,主表字段提取的方式为$.data['fpdm'],我们在返回值设置中添加发票代码字段,再写入提取方式即可。
将接口详情中返回示例中的参数,按照下述格式,完成简道云所有主表返回字段的配置。。
格式示例:$.data['fpdm']
注意,子表单的配置特殊。
以子表单发票详单中的“货物或应税劳务、服务名称”为例,根据 Json Path 规则,填写返回值的方式为$.data['goodsData'][*]['name'],中间的[*]表示选取发票详单这个列表中每一个字典。
其中子表单字段的格式如下:
格式示例:$.data['goodsData'][*]['name']
所有的字段返回值配置完毕后,点击确定,即可保存设置内容。
5.4 效果演示
按照上述步骤,已完成前端事件的全部设置,接下来点击「保存并调试」,进入调试,检查有无问题。
上传一张 PDF 格式的发票,点击「发送请求」,即可看到请求效果。
按照上述过程,我们已经完成了增值税发票PDF版OCR识别前端事件的全部配置,您可以点击下方链接进行发票识别测试。
点击测试:PDF发票识别demo
您还可以尝试根据此教程将前端事件功能应用在更多场景。