前端对接开票

供应商上传发票校验

上传接口新增 uploadType:图片/PDF 走 OCR 抬头硬校验,二维码取票链接校验税务局域名;含报错文案速查与二维码解析前端职责

端
供应商小程序
后端服务
supplier
更新
2026-09-28
接口数
1

Markdown 原文(给 AI 用):https://doc.xfun.fun/supplier-invoice-upload-api.md

总览:改了什么

两种上传方式与前端职责

方式一:发票图片 / PDF(uploadType=1,或不传)

注意

PDF 注意: OSS 上传时必须保留 .pdf 扩展名(后端按 URL 后缀区分 PDF 与图片识别通道)。如果上传组件会改文件名,确认生成的 URL 以 .pdf 结尾。

方式二:发票二维码(uploadType=2) 新增

说明

常见误区: uploadType=2 时 invoiceUrl 传的是 二维码内容里解析出的取票链接(https://…chinatax.gov.cn/…),不是二维码截图的 OSS 图片地址。传成图片地址会报「取票链接无效」。

接口定义

POST/invoice/task/upload入参变更

上传发票(原接口)。鉴权、Header 与现状一致。

请求参数

字段类型必填说明
idLong必填开票申请单 ID
invoiceUrlString必填uploadType=1:发票图片/PDF 的 OSS 地址;uploadType=2:二维码解析出的税务局取票链接
uploadTypeInteger可选新增 1 = 发票图片/PDF(默认,不传按 1 处理);2 = 发票二维码取票链接

请求示例:图片 / PDF

json
{
  "id": 123,
  "invoiceUrl": "https://image-bulky.xunmengvip.com/supplier/invoice/dzfp_2611xxxx.pdf",
  "uploadType": 1
}

请求示例:二维码取票链接

json
{
  "id": 123,
  "invoiceUrl": "https://dppt.yunnan.chinatax.gov.cn/invoice-query/invoice-download?xxx",
  "uploadType": 2
}

响应

json
{ "code": 0, "msg": "success", "data": true }

校验不通过时 code != 0,msg 为面向供应商的完整文案,直接 toast 展示即可,无需按 code 分支。

报错文案速查

msg 文案触发场景前端处理建议
发票抬头“××”与申请单抬头“××”不一致,请核对后重新开具OCR 识别出的购买方名称与申请单抬头不一致(动态文案,含两边抬头)toast / 弹窗展示,引导重新开票
发票识别失败,请确认图片清晰完整后重试传的图不是发票(如二维码截图误走图片通道)、图片模糊不完整toast,引导重新拍摄/上传
发票识别失败,请稍后重试OCR 服务临时异常toast,可重试同一文件
取票链接无效,请上传税务局开具的取票二维码uploadType=2 且链接不是税务局域名(或误传了图片地址)toast,检查是否解析对了二维码内容
当前状态不支持上传发票申请单状态既非待开票/逾期,也非已完成重传toast 并刷新列表
申请单不存在id 错误或不属于当前供应商toast 并刷新列表

校验规则细节

抬头比对(uploadType=1)

取票链接域名(uploadType=2)

联调注意