增值税发票识别图片版
1.简介
1.1 场景简介
很多情况下需要对上传的增值税发票图片进行识别,并将发票的相关数据返回到字段中存储以便后续统计计算。
本文将通过支持发票图片识别的接口及简道云 前端事件 ,为您详细讲解图片版的发票如何在前端被识别出来。
1.2 预期效果
上传增值税发票图片,即可快速识别出发票详细信息,并填写在表单中;点击体验效果:发票识别demo。
2. 接口准备
2.1 购买接口
首先我们需要找到一个支持发票图片识别的接口,我们以阿里云官方提供的接口为例,讲解如何在简道云的前端事件中配置:点击进入阿里云市场购买接口
我们先购买一个 0.01 元/500 次的体验版本,可以在 云市场 已购买的服务中看到我们刚刚购买的接口。
2.2 接口分析
接下来,点击接口,往下翻到 API 接口的详情介绍,对「增值税发票识别」的接口进行分析。
【调用地址】:http://dgfp.market.alicloudapi.com/ocrservice/invoice 或 https://dgfp.market.alicloudapi.com/ocrservice/invoice
【请求方式】:POST
【返回类型】:JSON
【请求的Headers】:Authorization: APPCODE +英文空格+ 你自己的 APPCODE(服从阿里云云市场的标准鉴权方式)
Authorization:APPCODE AppCode值
【请求body】
可以是图片的 URL 或者 base64 编码:
名称 | 类型 | 是否必须 | 描述 |
图片 Base64 | STRING | 可选 | 图片 Base64 和图片 URL 只能选择一个 |
图片 URL | STRING | 可选 | 图片 Base64 和图片 URL 只能选择一个 |
正常返回示例:
{
"sid": "11XXXXXXXXXXXXXX0d",
"data": {
"发票代码": "032001500XXX",
"发票号码": "25272XXX",
"开票日期": "2017年XX月XX日",
"校验码": "15922733756000XXXXXX",
"发票金额": "XXX.00",
"发票税额": "XXX.43",
"不含税金额": "XXX.57",
"受票方名称": "XXX",
"受票方税号": "XXXX",
"受票方地址、电话": "XXX",
"受票方开户行、账号": "XXX",
"销售方名称": "XXX",
"销售方税号": "913201043023368XXX",
"销售方地址、电话": "XXX",
"销售方开户行、账号": "XXX",
"发票详单": [
{
"货物或应税劳务、服务名称": "【XXXX】XXXXXXXXXX",
"规格型号": "",
"单位": "",
"数量": "",
"单价": "75.21",
"金额": "75.21",
"税率": "17%",
"税额": "12.79"
}
],
"发票代码解析": {
"批次号": "11",
"年份": "2016",
"税务局代码": "None",
"发票行业代码": "None",
"金额版": "十万元版",
"行政区划代码": "XX市",
"发票类别代码": "None"
}
}
}
3. 表单设计
新建「增值税发票识别」表单,字段设置如下:
字段名称 | 字段类型 |
上传发票图片 | 图片 |
发票代码 | 单行文本 |
发票号码 | |
开票日期 | |
校验码 | |
发票金额 | |
发票税额 | |
不含税金额 | |
受票方名称 | |
受票方税号 | |
受票方地址、电话 | |
受票方开户行、账号 | |
销售方名称 | |
销售方税号 | |
销售方地址、电话 | |
销售方开户行、账号 | |
发票详单 | 子表单 |
货物或应税劳务、服务名称 | 子字段-单行文本 |
规格型号 | |
单位 | |
数量 | |
单价 | |
金额 | |
税率 | |
税额 |
注:企业实际使用时,按需配置需要的字段即可。
4. 前端事件设置
4.1 配置入口
添加好了以后,即可在表单属性中配置前端事件:
4.2 设置事件名称&说明
添加好前端事件后,首先设置前端事件的基础信息,即事件名称和事件说明,用于区分前端事件:
4.3 设置触发动作
设置触发动作:触发字段选择「上传发票图片」字段。
4.4 设置执行动作
根据【2.2 接口分析】章节,设置执行动作如下:
- 执行动作类型:自定义请求
- 请求类型:POST
- URL设置为:
https://dgfp.market.alicloudapi.com/ocrservice/invoice
Hearder/Body设置:
- Hearder:Authorization=APPCODE+英文空格+自己的 APPCODE
注:可以在 云市场 已购买的服务中看到我们购买的接口,并获取对应的 APPCODE。
- Body:JSON
name | value |
url | 上传发票图片字段 |
注:value 的值从右侧「插入字段」中选择。
全部设置完成记得点击「确定」进行保存。
4.5 设置返回值
1)返回值格式选择 JSON,点击返回值设置下方的「点击设置」:
2)进入返回值设置页面,添加「发票代码」、「发票号码」、「开票日期」等字段为其设置返回值:
3)根据 Json Path 规则及返回示例中的参数,按照格式,完成字段的配置如下:
返回值字段 | 解析值 |
发票代码 | $.data['发票代码'] |
发票号码 | $.data['发票号码'] |
开票日期 | $.data['开票日期'] |
校验码 | $.data['校验码'] |
发票金额 | $.data['发票金额'] |
发票税额 | $.data['发票税额'] |
不含税金额 | $.data['不含税金额'] |
受票方名称 | $.data['受票方名称'] |
受票方税号 | $.data['受票方税号'] |
受票方地址、电话 | $.data['受票方地址、电话'] |
受票方开户行、账号 | $.data['受票方开户行、账号'] |
销售方名称 | $.data['销售方名称'] |
销售方税号 | $.data['销售方税号'] |
销售方地址、电话 | $.data['销售方地址、电话'] |
销售方开户行、账号 | $.data['销售方开户行、账号'] |
货物或应税劳务、服务名称 | $.data['发票详单'][*]['货物或应税劳务、服务名称'] |
规格型号 | $.data['发票详单'][*]['规格型号'] |
单位 | $.data['发票详单'][*]['单位'] |
数量 | $.data['发票详单'][*]['数量'] |
单价 | $.data['发票详单'][*]['单价'] |
金额 | $.data['发票详单'][*]['金额'] |
税率 | $.data['发票详单'][*]['税率'] |
税额 | $.data['发票详单'][*]['税额'] |
注:当子字段作为返回字段时,需要使用 [*] 来获取子表单所有行的数据。
5. 保存与调试
1)按照上述步骤,已完成前端事件的全部设置,接下来点击「保存并调试」,可进入调试,检查配置有无问题。
2)上传发票图片,然后点击底部「发送请求」,即可看到返回的发票信息,即配置成功。