成功签约结果通知API
请求地址
一网通支付或签约请求中商户传送的成功签约结果通知地址。
例如:一网通支付API中的signNoticeUrl参数。
注意,测试环境端口号需要为:80、8080、443、8443,生产环境需要为:80、8080、443、8443。
请求报文
适用于银行主动回调商户,报文通过招行证书私钥进行签名,商户需通过招行公钥验证通知来源于招行。由银行作为发起方发起请求,商户接收请求后返回响应信息。
报文的参数名: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:签约成功 其他:签约失败 注意:通常只有签约成功才会发送签约结果通知,但极少数异常情况下可能会发送签约失败的结果通知。因此,商户收到通知报文后,应先判断rspCode是否为SUC0000,以确认签约是否成功。 | SUC0000 |
rspMsg | String | M | 详细信息,失败时返回的失败原因 | |
noticeType | String | M | 通知类型,本接口,固定为BKQY | BKQY |
noticeSerialNo | 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 | 回调HTTP地址,固定为“POST” | POST |
agrNo | String(32) | M | 签约请求时填写的客户协议号 | 0001283 |
noticePara | String(256) | M | 原样返回商户在签约或一网通支付请求报文中传送的成功签约通知附加参数 | ABC|123|SDK |
userID | String(20) | M | 签约请求时填写的用于标识商户用户的唯一ID | 12345 |
userPidType | String(1) | M | 用户证件类型,1:身份证 | 1 |
userPidHash | String(30) | M | 证件号映射的30位hash值,成功交易返回 | 501010131010181016101010101012 |
noPwdPay | String(1) | M | 免密标识,固定为“N”,表示不开通免密。 | N |
以下字段联系招行配置控制参数后返回(默认不返回): | ||||
uniqueUserID | String(30) | C | 支付用户ID,由身份证+姓名生成(推荐使用) | UQwanCunLbp6cl1RbDFODrhLrAa48= |
expandUserID | String(30) | C | 一网通用户ID,由一网通ID生成(招行一网通用户的身份标识) | EUfirwdVQVKhffJmjQhMod0dS6GYY= |
请求示例
1.json报文组织:
{ "version":"1.0", "charset":"UTF-8", "sign":"…", "signType":"RSA", "noticeData":{ "dateTime":"20160622182921", "noticeType":"BKQY", "noticeSerialNo":"201606238888888", "branchNo":"0755", "merchantNo":"002346", "noticeUrl":"https://...", "httpMethod":"POST", "agrNo":"0001283", "noticePara":"", "rspCode":"SUC0000", "rspMsg":"", "userID":"12345", "userPidType":"1", "userPidHash":"501010131010181016101010101012", "noPwdPay":"N" } }
2.表单组织:
<form action="请求地址" method="post" /> <input type="hidden" name="jsonRequestData" value='以上json字符串' /> <input type="hidden" name="charset" value='UTF-8' /> </form>
3.待签名字符串(未包含支付密钥):
agrNo=0001283&branchNo=0755&dateTime=20160622182921&httpMethod=POST&merchantNo=002346&noPwdPay=N¬icePara=¬iceSerialNo=201606238888888¬iceType=BKQY¬iceUrl=https://...&rspCode=SUC0000&rspMsg=&userID=12345&userPidHash=501010131010181016101010101012&userPidType=1
响应报文
返回 HTTP Status Code 200,表示成功接收。否则表示未成功,未成功则银行会进行重发,重发直至响应成功或重发次数达到上限9次后停止重发。
错误码
无