接口说明
此接口支持商户端通过接口获取上传发票文件授权链接,通过一组文件名获取上传url(获取到的上传 url 半小时内有效),根据返回的 url 上传发票文件。具体可参考上传文件代码示例
请求地址
环境 | 请求地址 |
正式环境 | https://api.cargonpay.com/api/reservePay/authSignUrl |
请求参数
索引 | ID | 名称 | 长度 | 必须 | 说明 |
1 | accessKey | 请求唯一标识 | varchar(36) | 是 | |
2 | nonce | 随机号 | varchar(36) | 是 | |
3 | timestamp | 时间戳 | varchar(20) | 是 | Unix时间戳,保留到毫秒 |
4 | sign | 签名 | varchar(32) | 是 | |
5 | fileNameList | 文件名列表 | array(50) | 是 | 文件名最大36个字符 |
响应参数
索引 | ID | 名称 | 长度 | 必须 | 说明 |
1 | code | 返回状态码 | varchar(10) | 是 | |
2 | message | 返回消息 | varchar(200) | 是 | |
3 | data | array | 是 | ||
4 | fileName | 文件名称 | varchar(50) | 是 | |
5 | signUrl | 临时授权上传链接 | varchar(255) | 是 | |
6 | showUrl | 回显地址 | varchar(255) | 是 | |
7 | header | 上传文件时http请求头 | object | 是 | 包含Host和Content-Type等信息。尽量放到 key-value模型中,不建议固定解析里面的字段 |
请求示例
JSON格式
- {
- "timestamp": "1725797231000",
- "nonce": "1725797231015",
- "accessKey": "F0D16DD2EFF945C4B73A4B37F99C2696",
- "sign": "6171259AC785434806AA644F86925D50",
- "fileNameList": ["71823711.pdf"]
- }


复制代码

响应示例
JSON格式
{ "code": "000000", "message": "请求成功", "data": [{ "fileName": "abc.pdf", "signUrl": "https://ret-invoice.obs.com/sign=abc", "showUrl": "https://img.cargonpay.com/invoice/abc.pdf", "header": { "Host": "127.0.0.1", "Content-Type": "application/pdf" } }] }


复制代码

返回状态码
索引 | ID | 名称 |
1 | 000000 | 提交成功 |
2 | 100001 | 参数无效,【参数名】不正确 |
3 | 100002 | 请求时间超出有效时间 |
4 | 100003 | 商户accessKey不存在,请联系荣e通客服 |
5 | 100004 | 商户accessKey已停用 |
6 | 100005 | 验证签名失败 |
7 | 100006 | 请求重复,请重新发起(nonce重复) |
8 | 200050 | 获取上传文件链接不能超过50个 |
9 | 200051 | 文件名不能超过36个字符 |
10 | 999999 | 系统错误,请联系技术人员 |
上传文件代码示例
以下为java签名的示例代码
JAVA
// 本地待上传文件 File file = new File("/invoice/71823711.pdf"); // 使用 okHttp3 构建网络请求 Request.Builder builder = new Request.Builder(); // 设置 HTTP 请求头,header 是接口返回值中的 header,这里解析为 Map 类型 for (Map.Entryentry : header.entrySet()) { builder.header(entry.getKey(), entry.getValue()); } //使用 PUT 请求上传对象,signUrl 是接口返回的临时授权上传文件 url Request httpRequest = builder.url(signUrl).put(RequestBody.create(null, file)).build(); OkHttpClient httpClient = new OkHttpClient.Builder().followRedirects(false).retryOnConnectionFailure(false).cache(null).build(); Call c = httpClient.newCall(httpRequest); Response res = c.execute(); System.out.println("\tStatus:" + res.code()); res.close();


复制代码

- 请求地址
- 请求参数
- 响应参数
- 请求示例
- 响应示例
- 返回码说明
- 上传文件代码示例