分账网关接口
本文档定义CHINAPNR支付网关商户接入接口规范,提供接口报文参数说明、示例报文、信息安全解决方案,并给出相关问题说明等,以帮助商户技术人员接入,便于尽快投入使用。
根据PCI-DSS检查要求,正式环境禁止使用低版本的SSL3.0 TLS1.0 TLS1.1等协议,请使用高于TLSv1.2及以上发送请求,推荐使用TLSv1.2
提交参数
请求地址
环境 | HTTPS请求地址 |
---|---|
测试环境 | https://hfgj.testpnr.com/ledger/transDiv.htm |
正式环境 | https://global.chinapnr.com/ledger/transDiv.htm |
协议参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
inputCharset | String | 是 | 1 | 字符集,固定值:1 1-UTF-8 |
1 |
version | String | 是 | 10 | 网关版本,固定值:1.0 | 1.0 |
signType | String | 是 | 1 | 签名类型,固定值:4-RSA加签 | 4 |
业务参数
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
merchantAcctId | String | 必选 | 32 | 会员账号,由我司提供的商户号+01,共13位数字 | 1001234001101 |
terminalId | String | 必选 | 8 | 终端号,由我司提供的终端号 | 999999 |
requestId | String | 必选 | 32 | 请求流水号,只允许使用字母、数字、_,每个商户提交的流水号,必须在自身账户交易中唯一 | 20170728120001001 |
requestTime | String | 必选 | 14 | 请求时间, 数字串,一共14位。
格式:年[4位]月[2位]日[2位]时[2位]分[2位]秒[2位]
即: yyyyMMddHHmmss |
20170728120001 |
dealId | String | 必选 | 32 | 收单系统交易号,该交易在收单系统对应的交易号 | 20000100 |
details | String | 必选 | 分账明细, 明细笔数最多99 | 见分账明细字段说明 | |
ext1 | String | 可选 | 128 | 扩展字段1, 预留 | |
ext2 | String | 可选 | 128 | 扩展字段2, 预留 | |
signMsg | String | 必选 | 2048 | 签名字符串 | 参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行商户密钥进行加签 |
2.1 分账明细字段说明
各字段以|分隔,各行以;分隔
序号 | 字段名 | 格式 | 是否必输 | 说明 |
---|---|---|---|---|
1 | 用户号 | String(11) | 是 | 汇付唯一用户号 |
2 | 金额 | Number(15) | 是 | 格式为实际金额扩大100倍提交。如1000,表示10元 |
3 | 描述 | String(128) | 否 | 分账描述 |
version={version}&signType={signType}&merchantAcctId={merchantAcctId}&terminalId={terminalId}&requestId={requestId}&requestTime={requestTime}
- 按以上固定字段顺序进行加签。
- 仅对非空字段进行加签。
- 加密字段明文加签。
同步返回参数
收单分账请求处理完成后,会同步返回如下数据,
参数名称 | 参数含义 | 长度 | 参数说明 |
---|---|---|---|
requestId | 商户请求流水号 | 32 | 商户请求流水号,与提交订单时一致 |
requestTime | 请求时间 | 14 | 商户提交的请求时间, 与提交订单时一致 |
dealId | 原交易收单系统交易号 | 32 | 原交易收单系统交易号, 与提交订单时一致 |
ext1 | 扩展字段1 | 128 | 扩展字段1, 与提交订单时一致 |
ext2 | 扩展字段2 | 128 | 扩展字段2, 与提交订单时一致 |
respCode | 错误代码 | 6 | 000000 成功,其它为异常 |
respMsg | 错误描述 | 512 | 错误代码不为000000时提供 |
signMsg | 签名字段 | 2048 | 签名字符串,商户需对该字段进行验签。详情请参考验签方法。对于所有值不为空的参数及对应值,按照指定顺序组成字符串:参数1={参数1}&参数2={参数2}&……&参数n={参数n}然后进行支付平台证书加密形成密文后进行2048位的Base64转码。 |
details | 分账明细 | 存在错误明细时返回,格式见返回明细字段说明 |
dealId={dealId}&ext1={ext1}&ext2={ext2}&requestId={requestId}&requestTime={requestTime}&respCode={respCode}&respMsg={respMsg}
- 下述字段顺序进行验签
- 仅对非空字段进行验签
返回明细字段说明:各字段以|分隔,各行以半角“;”分隔
序号 | 字段名 | 格式 | 是否必输 | 说明 |
---|---|---|---|---|
1 | 用户号 | String(11) | 是 | 原样返回 |
2 | 金额 | number(15) | 是 | 原样返回 |
3 | 描述 | String(128) | 否 | 原样返回 |
4 | 失败原因 | String(128) | 否 | 当失败时返回失败原因描述 |
3.1应答码表
应答代码表 | 应答代码表 |
---|---|
000000 | 成功 |
110001 | 必须提交的请求参数未提交 |
110002 | 请求的数据项长度不符 |
110003 | 请求的数据项格式错误 |
110005 | 请求的数据项不合法 |
120010 | 请求的商户不存在 |
120011 | 请求的商户状态异常 |
120014 | 该商户账户已被冻结,禁止交易 |
120103 | 该商户账户已被删除,禁止交易 |
120110 | 该商户账户已被止入,禁止交易 |
120111 | 请求的商户号状态异常,不允许交易 |
120014 | 产品功能未开通,不允许交易 |
120023 | 交易请求Ip未知,不允许交易 |
170001 | 请求流水号重复 |
170002 | 分账明细笔数超出限制 |
170003 | 原交易不允许分账 |
170004 | 原交易可分账余额不足 |
170006 | 原交易分账状态错误 |
170100 | 分账明细格式有误,详情见明细失败原因 |
200001 | 订单信息的签名内容不正确 |
400001 | 原交易不存在 |
400007 | 原交易状态错误 |
99999 | 系统错误 |