# AllPay报关接口规范说明文档V5.0.0

> [上海偶可贝网络科技有限公司](https://www.allpayx.com)
>
> - 版本信息:中文 V5.0.0
> - 更新时间:2019 年 5 月

## 1.概述

本文档规定了商户与AllPay之间的海关申报产品进行联机交易时使用的报文接口。

## 2.验签说明 

```
1.对于发送到 AllPay 系统的 POST 请求报文,其中所有传入参数(除 signature 参数外)按照字段名的 ASCII 码从小到大排序后(字典序),使用 URL 键值对的格式(即 key1=value1&key2=value2...)拼接成字符串 String1。

2.在 String1 最后直接拼接(不需要用“&”连接)双方约定的签名密钥 Key(接入 AllPay 时分配),得到 stringSignTemp 字符串,并对 stringSignTemp 进行加密运算,得到 signature 的值。

3.示例签名串 acqID=99020344&charSet=UTF-8&customs_code=3302462548&customs_name=宁波鑫海通达仓储服务有限公司&customs_place=GUANGZHOU_ZS&merID=000000000000016&merReserve=dd&orderCurrency=CNY&orderNum=ge6VYVeYbM2TUYkVgPhOZQJmqnoQ&origOrderNum=20190425061047&paymentSchema=WX&productPrice=3&signType=MD5&signature=12a0e499149f5d98b9d439dbe0e1ac9d&tarPrice=0&transTime=20190522171245&transType=DECL&transportPrice=0.1&version=VER000000005
```

## 3.通用API说明 

商户服务器和 AllPay 网关对接的海关申报相关接口,包括申报、申报查询。

### 3.1 通用 API 接入地址 

| 交易名称 | 开发调试地址                                     | 生产交易地址                                 |
| -------- | ------------------------------------------------ | -------------------------------------------- |
| 申报     | https://testapi.allpayx.com/custom/directDeclare | https://api.allpayx.com/custom/directDeclare |
| 申报查询 | https://testapi.allpayx.com/custom/query         | https://api.allpayx.com/custom/query         |

### 3.2 申报接口

1.请求报文格式

| 参数          | 类型        | 属性 | 描述                                                       |
| ------------- | ----------- | ---- | ---------------------------------------------------------- |
| version       | String(12)  | M    | 统一填写为“VER000000005”                                   |
| charSet       | String(6)   | M    | 统一填写为“UTF-8”                                          |
| transType     | String(4)   | M    | 交易类型代码:“DECL”                                       |
| orderNum      | String(60)  | M    | 报关订单号:商户自行定义,需保证同一商户号下订单号不能重复 |
| origOrderNum  | String(60)  | M    | 支付成功的订单号                                           |
| orderCurrency | String(3)   | M    | 订单币种:ISO标准。如:人民币填写“CNY”,美元填写"USD"。当前只支持CNY报关      |
| customs_code  | String(64)  | M    | 商户海关备案编码                                           |
| customs_name  | String(128) | M    | 商户海关备案名称                                           |
| customs_place | String(128) | M    | 海关,详见附件 1 海关列表                                  |
| merID         | String(15)  | M    | 商户 ID,由AllPay 分配                                     |
| acqID         | String(11)  | M    | 收单行 ID "99020344"                                       |
| paymentSchema | String(10)  | M    | 渠道代码。微信:WX                                         |
| transTime     | String(14)  | M    | 交易时间,格式:"yyyyMMddHHmmss"                            |
| signType      | String(10)  | M    | MD5或SHA256                                                |
| signature     | String(32)  | M    | 采用 MD5或SHA256 签名                                      |

2.响应报文格式

| 参数           | 类型        | 属性 | 描述                              |
| -------------- | ----------- | ---- | --------------------------------- |
| version        | String(12)  | M    | 统一填写为“VER000000005”          |
| charSet        | String(6)   | M    | 统一填写为“UTF-8”                 |
| transType      | String(4)   | M    | “DECL”                            |
| orderNum       | String(60)  | M    | 报关订单号                        |
| RespCode       | String(2)   | M    | 应答码 00-成功。详见附件 2 应答码 |
| RespMsg        | String(128) | M    | 应答消息                          |
| customs_code   | String(64)  | M    | 商户在海关报备的编码              |
| customs_name   | String(128) | M    | 商户在海关报备的名称              |
| customs_place  | String(128) | M    | 海关,详见附件 1 海关列表         |
| allpayOrderNum | String(64)  | M    | AllPay系统的转换商户订单号        |
| schemaTransId  | String(64)  | M    | 支付渠道的交易ID                  |
| merID          | String(15)  | M    | 商户 ID,由AllPay 分配            |
| acqID          | String(11)  | M    | 收单行 ID "99020344"              |
| paymentSchema  | String(10)  | M    | 渠道代码。微信:WX                |
| transTime      | String(14)  | M    | 交易时间,格式:"yyyyMMddHHmmss"  |
| signType       | String(10)  | M    | MD5或SHA256                       |
| signature      | String(32)  | M    | 采用 MD5或SHA256 签名             |

### 3.3 申报查询接口

1.请求报文格式

| 参数          | 类型       | 属性 | 描述                            |
| ------------- | ---------- | ---- | ------------------------------- |
| version       | String(12) | M    | 统一填写为“VER000000005”        |
| charSet       | String(6)  | M    | 统一填写为“UTF-8”               |
| transType     | String(4)  | M    | 查询填写“INQY”                  |
| orderNum      | String(60) | M    | 报关订单号                      |
| merID         | String(15) | M    | 商户 ID,由AllPay 分配          |
| acqID         | String(11) | M    | 收单行 ID "99020344"            |
| paymentSchema | String(10) | M    | 渠道代码。微信:WX              |
| transTime     | String(14) | M    | 交易时间,格式:"yyyyMMddHHmmss" |
| signType      | String(10) | M    | MD5或SHA256                     |
| signature     | String(32) | M    | 采用 MD5或SHA256 签名           |

2.响应报文格式

| 参数           | 类型        | 属性 | 描述                              |
| -------------- | ----------- | ---- | --------------------------------- |
| version        | String(12)  | M    | 统一填写为“VER000000005”          |
| charSet        | String(6)   | M    | 统一填写为“UTF-8”                 |
| transType      | String(4)   | M    | “DECL”                            |
| orderNum       | String(60)  | M    | 报关订单号                        |
| RespCode       | String(2)   | M    | 应答码 00-成功。详见附件 2 应答码 |
| RespMsg        | String(128) | M    | 应答消息                          |
| customs_code   | String(64)  | M    | 商户在海关报备的编码              |
| customs_name   | String(128) | M    | 商户在海关报备的名称              |
| customs_place  | String(128) | M    | 海关,详见附件 1 海关列表         |
| allpayOrderNum | String(64)  | M    | AllPay系统的转换商户订单号        |
| schemaTransId  | String(64)  | M    | 支付渠道的交易ID                  |
| merID          | String(15)  | M    | 商户 ID,由 AllPay 分配           |
| acqID          | String(11)  | M    | 收单行 ID "99020344"              |
| paymentSchema  | String(10)  | M    | 渠道代码 微信:WX                 |
| transTime      | String(14)  | M    | 交易时间,格式:"yyyyMMddHHmmss"  |
| signType       | String(10)  | M    | MD5或SHA256                       |
| signature      | String(32)  | M    | 采用 MD5或SHA256 签名             |

### 4.1 微信海关列表

| 海关名称                                                     | 海关编码        |
| ------------------------------------------------------------ | --------------- |
| 广州(总署版)                                               | GUANGZHOU_ZS    |
| 广州黄埔国检(推送至黄埔国检的订单需分别推送广州(总署版)和广州黄埔国检,即需要请求两次报关接口) | GUANGZHOU_HP_GJ |
| 广州南沙国检(推送至南沙国检的订单需分别推送广州(总署版)和广州南沙国检,即需要请求两次报关接口) | GUANGZHOU_NS_GJ |
| 杭州(总署版)                                               | HANGZHOU_ZS     |
| 宁波                                                         | NINGBO          |
| 郑州(保税物流中心)                                         | ZHENGZHOU_BS    |
| 重庆                                                         | CHONGQING       |
| 西安                                                         | XIAN            |
| 上海(总署版)                                               | SHANGHAI_ZS     |
| 深圳                                                         | SHENZHEN        |
| 郑州综保(总署版)                                           | ZHENGZHOU_ZH_ZS |
| 天津                                                         | TIANJIN         |
| 北京                                                         | BEIJING         |

## 5.附件 1 应答码

| 应答码 | 描述         |
| ------ | ------------ |
| 00     | 成功         |
| 01     | 失败         |
| 04     | 处理中       |
| 61     | 超过限额     |
| U1     | 商户不存在   |
| U2     | 签名错误     |
| U3     | 报文被篡改   |
| U4     | 缺失参数     |
| U5     | 无效的参数   |
| U6     | 重复的订单号 |
| U7     | 订单不存在   |
| U8     | 参数为空     |
| U9     | 系统错误     |
| P1     | 渠道未配置   |
| P2     | 币种未配置   |

## 6.技术支持

如果您有任何问题,请邮件联系support@allpayx.com