免密冻结

资金冻结完成扣款结果异步通知

1. 接口介绍

功能简述:

商户调用了资金冻结完成扣款交易后,招行在交易处理完成时,会主动给商户发此通知。

约束条件:

正常流程:

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请求时间,银行处理该交易的时间。格式:yyyyMMddHHmmss20160623101430
rspCodeStringM处理结果返回码
SUC0000:请求处理成功
其他:请求处理失败
SUC0000
rspMsgStringM结果描述信息资金冻结完成扣款成功
noticeTypeStringM通知类型,本接口固定为BKDBBKDB
noticeSerialNoString(40)M通知序号201606238888888
branchNoString(4)M商户分行号,4位数字0755
merchantNoString(6)M商户号,6位数字002346
noticeUrlStringM回调地址,收、退款交易填写的结果通知地址,即noticeUrl参数的内容http://test.52sz.co/zsPay/zsResult.php
httpMethodStringM回调方法,固定为POSTPOST
merchantSerialNoString(32)M商户交易请求流水号,全局唯一2016062310143088
agrNoString(32)M客户签约的协议号201606238888888
以下字段在rspCode为SUC0000时返回: 
bankSerialNoString(30)M银行处理该请求的流水号2016062310143099
amountString(20)M订单金额,以元为单位,如10.01表示10元零1分10.01
fee_amtString(20)C手续费金额,以元为单位,如0.07表示 零元7分0.07
card_typeString(2)M交易卡类型
02 本行借记卡
02
discountAmountString(20)M优惠金额,以元为单位,如0.07表示 零元7分0.02
discountFlagString(1)M优惠标识(收款通知)
Y:有优惠 N:无优惠
Y
settleDateString(8)M银行账务日期(YYYYMMDD),用于商户与银行对账20161212
以下字段联系招行配置控制参数后返回(默认不返回):
uniqueUserIDString(30)C支付用户ID,由身份证+姓名生成(推荐使用)UQwanCunLbp6cl1RbDFODrhLrAa48=
expandUserIDString(30)C一网通用户ID,由一网通ID生成(招行一网通用户的身份标识)EUfirwdVQVKhffJmjQhMod0dS6GYY=

相应示例:

正常json报文组织:

{
    "version":"1.0",
    "charset":"UTF-8",
    "sign":"…",
    "signType":"RSA",
    "noticeData":{
        "dateTime":"20160622182921",
        "rspCode":"SUC0000",
        "rspMsg":"资金冻结成功",
        "noticeType":"BKDB",
        "noticeSerialNo":"201606238888888",
        "branchNo":"0755",
        "merchantNo":"002346",
        "noticeUrl":"http://test.52sz.co/zsPay/zsResult.php",
        "httpMethod":"POST",
        "merchantSerialNo":"2016062310143088",
        "bankSerialNo":"2016062310143099",
        "agrNo":"1234567891234568789",
        "amount":"10.01",
        "discountAmount ":"0.02",
        " discountFlag ":"Y",
        "fee_amt":"0.07",
        "card_type":"02",
        "settleDate":"20161212"}
}

表单组织:

<form action="请求地址" method="post" >
    <input type="hidden" name="jsonRequestData" value="以上json字符串" /> 
</form>

待验证签名字符串为:

agrNo=1234567891234568789&amount=10.01&bankSerialNo=2016062310143099&branchNo=0755&card_type=02&dateTime=20160622182921&discountAmount=0.02&discountFlag=Y&fee_amt=0.07&httpMethod=POST&merchantNo=002346&merchantSerialNo=2016062310143088&noticeSerialNo=201606238888888&noticeType=BKDB&noticeUrl=http://test.52sz.co/zsPay/zsResult.php &rspCode=SUC0000&rspMsg=资金冻结完成扣款成功&settleDate=20161212

4. 响应报文

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

5. 错误码

6. FAQ