接口说明
此接口支持商户端通过接口获取上传发票文件授权链接,通过一组文件名获取上传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格式
  1. {
  2. "timestamp": "1725797231000",
  3. "nonce": "1725797231015",
  4. "accessKey": "F0D16DD2EFF945C4B73A4B37F99C2696",
  5. "sign": "6171259AC785434806AA644F86925D50",
  6. "fileNameList": ["71823711.pdf"]
  7. }
复制代码

响应示例

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.Entry entry : 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();

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