支付协议结果签订通知-重复签约
1. 接口介绍
功能简述:
商户调用了签订支付协议API后,如上送的协议号已存在,则可能收到该回调通知。常见于:
1、使用同一协议号重复发起签约;
2、用户在招行App、或商户侧关闭协议后,再次发起签约时仍使用原协议号;
3、用户使用H5支付时,商户已上送协议号,后续使用同一协议号开通免密支付功能。
如上送的协议号为新协议号(首次签约,或重复签约时为用户分配新协议号),则回调通知详见:http://openhome.cmbchina.com/PayNew/pay/doc/cell/secret/SuccessPayResAPI
约束条件:
前端报错(例如请求参数格式错误等),招行不会主动给商户发失败通知。
正常流程:
1、 开通成功
2、 往商户提供的回调地址发送通知
3、 商户响应HTTP 200
异常流程:
1、 商户提供的回调地址网络不通
2、 商户没响应HTTP 200
2. 请求地址
调用招行的支付协议开通免密支付API时,传送的结果通知地址noticeUrl
3. 请求报文
适用于银行主动回调商户,报文通过招行证书私钥进行签名,商户需通过招行公钥验证通知来源于招行。由银行作为发起方发起请求,商户接收请求后返回响应信息。
报文的参数名:jsonRequestData,参数值JSON格式见下表:
参数名 | 类型(长度) | 必填 | 描述 | 示例 |
---|---|---|---|---|
version | String(3) | M | 接口版本号,固定为1.0 | 1.0 |
charset | String(8) | M | 参数编码,固定为UTF-8 | UTF-8 |
sign | String | M | 报文签名,使用招行私钥对noticeData内的数据进行签名;商户需使用招行公钥验签。 | |
signType | String | M | 签名算法,固定为RSA | RSA |
noticeData | 应答数据 | |||
dateTime | String(14) | M | 请求时间,商户发起该请求的时间,精确到秒。 格式: yyyyMMddHHmmss | 20160622182921 |
rspCode | String(7) | M | 处理结果 SUC0000:开通成功 其他:开通失败 | SUC0000 |
rspMsg | String | M | 处理结果描述信息 | 免密开通成功 |
noticeType | Stirng | M | 通知类型,固定为BKKT | BKKT |
noticeSerial | String(40) | M | 通知序列号 | 201606238888888 |
branchNo | String(4) | M | 商户分行号,4位数字 | 0755 |
merchantNo | String(6) | M | 商户号,6位数字 | 002346 |
noticeUrl | String | M | 回调地址 | http://test.52sz.co/zsPay/zsResult.php |
httpMethod | String | M | 回调方法,固定为POST | POST |
agrNo | String(32) | M | 客户协议号 | 1234567891234568789 |
noPwdPay | String(1) | M | 免密标识 Y 表示开通免密支付N 表示不开通免密支付 | Y |
请求示例:
json报文组织:
{ "version":"1.0", "charset":"UTF-8", "sign":"…", "signType":"RSA", "noticeData":{ "dateTime":"20160622182921", "rspCode":"SUC0000", "rspMsg":"免密开通成功", "noticeType":"BKKT", "noticeSerialNo":"201606238888888", "branchNo":"0755", "merchantNo":"002346", "noticeUrl":"http://test.52sz.co/zsPay/zsResult.php", "httpMethod":"POST", "agrNo":"1234567891234568789", "noPwdPay":"Y" } }
表单组织:
<form action="请求地址" method="post" > <input type="hidden" name="jsonRequestData" value="以上json字符串" /> </form>
待签名字符串(未包含支付密钥):
agrNo=1234567891234568789&branchNo=0755&dateTime=20160622182921&httpMethod=POST&merchantNo=002346&noPwdPay=Y¬iceSerialNo=201606238888888¬iceType=BKKT¬iceUrl=http://test.52sz.co/zsPay/zsResult.php&rspCode=SUC0000&rspMsg=免密开通成功
4. 响应报文
返回 HTTP Status Code 200,表示成功接收。否则表示未成功,未成功则银行会进行重发,重发直至响应成功或重发次数达到上限后停止重发。
5. 错误码
错误码 | 错误描述 | 解决方案 |
---|---|---|
CMBMB33 | 客户协议不存在 | 该协议没有签约,需要调用签约接口进行客户签约 |
CMBMB45 | 协议已注销 | 协议已解约,需要重新调用签约接口进行客户签约 |
CMBMB97 | 请求参数错误 | 根据提示信息中括号里的内容,修改请求参数。 如:请求参数错误(商户交易日期),检查”商户交易日期”字段的内容是否正确 |
6. FAQ
无