下载发票文件
更新时间:2023.10.12调用【获取发票下载信息】接口后,调用该接口下载发票文件。该接口不支持签名和验签
# 接口说明
适用对象: 普通服务商
请求URL: 通过【获取发票下载信息】口获取到“download_url”,URL有效期为30s,仅能下载ISSUED状态的发票。
请求方式: GET
前置条件: 通过【获取发票下载信息】口获取到“download_url”
# 字段说明
# 请求参数
- token 必填【获取发票下载信息】download_url中的token字段,保留即可。不要删除,也不用额外再添加一遍
- mchid 必填商户号
- sub_mchid 必填子商户号,服务商模式必须填写
- openid 必填通过查询接口获取的card_openid
- invoice_code 必填发票代码
- invoice_no 必填发票号码
- fapiao_id 必填唯一标识一张发票
Query 查询参数
# 返回参数
无返回参数
当获取到账单文件资源的下载地址信息后,如:
1{2 "fapiao_download_info_list": [3 {4 "download_url": "https://pay.wechatpay.cn/invoicing/fapiao/fapiao-file?token=xxxxxx",5 "fapiao_id": "fapiao-id-14",6 "status": "ISSUED"7 }8 ]9}
可以通过微信支付API v3标准对download_url进行签名,并发起请求,即可下载到账单文件的数据流。
1https://pay.wechatpay.cn/invoicing/fapiao/fapiao-file?token=xxxxxx&mchid=1462377&OpenID=o3v4BuMFNejs-gAOfXgS&invoice_code=14403220&invoice_no=0923&fapiao_id=fapiao-id-14
正常情况下,会返回发票文件二进制流,其中回包头部有SM3-Digest字段用于校验文件完整性,如:
1SM3-Digest: 4395A01AA9BEDF3989E804581AD5F118EC4A23932F92F984108EBF08A89416E02Content-Type: application/octet-stream3Content-Disposition: attachment; filename="fapiao-id-12.pdf"4Request-ID: 08E491ED930610E20318AD80C4E00A200028F61E-056%PDF-1.57%8%<e2><e3><cf><d3>91 0 obj<</Nums[ 0 2 0 R]>>10endobj112 0 obj<</S/D>>12endobj133 0 obj<</Type/Pages/Count 1/Kids[ 8 0 R]>>14endobj15...
如果遇到异常,则会返回json格式的错误信息,如:
1Content-Type: application/json; charset=utf-82Cache-Control: no-cache, must-revalidate3X-Content-Type-Options: nosniff4Request-ID: 08CCA5E89306102F18AD80C4E00A200028F81E-26847874756{"code":"INVALID_REQUEST","message":"链接已失效,请重新获取"}
# 错误码
# 公共错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | PARAM_ERROR | 参数错误 | 请根据错误提示正确传入参数 |
400 | INVALID_REQUEST | HTTP 请求不符合微信支付 APIv3 接口规则 | 请参阅 接口规则 |
401 | SIGN_ERROR | 验证不通过 | 请参阅 签名常见问题 |
500 | SYSTEM_ERROR | 系统异常,请稍后重试 | 请稍后重试 |
# 业务错误码
状态码 | 错误码 | 描述 | 解决方案 |
---|---|---|---|
400 | INVALID_REQUEST | 参数错误 | 请求参数与token不匹配 |
400 | INVALID_REQUEST | 参数错误 | URL已过期 |
400 | INVALID_REQUEST | 参数错误 | token无法解析 |
文档是否有帮助