免密冻结

支付协议结果签订通知-重复签约

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格式见下表:

参数名
类型(长度)必填描述示例
versionString(3)M接口版本号,固定为1.01.0
charsetString(8)M参数编码,固定为UTF-8UTF-8
signStringM报文签名,使用招行私钥对noticeData内的数据进行签名;商户需使用招行公钥验签。
signTypeStringM签名算法,固定为RSARSA
noticeData应答数据


dateTimeString(14)M请求时间,商户发起该请求的时间,精确到秒。
格式:yyyyMMddHHmmss
20160622182921
rspCodeString(7)M处理结果
SUC0000:开通成功
其他:开通失败
SUC0000
rspMsgStringM处理结果描述信息免密开通成功
noticeTypeStirngM通知类型,固定为BKKTBKKT
noticeSerialString(40)M通知序列号201606238888888
branchNoString(4)M商户分行号,4位数字0755
merchantNoString(6)M商户号,6位数字002346
noticeUrlStringM回调地址http://test.52sz.co/zsPay/zsResult.php
httpMethodStringM回调方法,固定为POSTPOST
agrNoString(32)M客户协议号1234567891234568789
noPwdPayString(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&noticeSerialNo=201606238888888&noticeType=BKKT&noticeUrl=http://test.52sz.co/zsPay/zsResult.php&rspCode=SUC0000&rspMsg=免密开通成功

4. 响应报文

返回 HTTP Status Code 200,表示成功接收。否则表示未成功,未成功则银行会进行重发,重发直至响应成功或重发次数达到上限后停止重发。

5. 错误码

错误码错误描述解决方案
CMBMB33客户协议不存在该协议没有签约,需要调用签约接口进行客户签约
CMBMB45协议已注销协议已解约,需要重新调用签约接口进行客户签约
CMBMB97请求参数错误根据提示信息中括号里的内容,修改请求参数。
如:请求参数错误(商户交易日期),检查”商户交易日期”字段的内容是否正确

6. FAQ