主动冻结

资金冻结完成

1. 接口介绍

功能简述:

本接口用于商户使用原资金冻结交易发起资金冻结完成扣款请求,每笔冻结交易仅支持扣款一次,剩余未扣款的资金将自动解冻。

约束条件:

1、 存在冻结成功的交易,且冻结资金仍有效
2、 请求扣款金额不超过剩余有效冻结金额

正常流程:

1、 报文合性校验
2、 资金冻结完成扣款处理
3、 同步返回交易处理结果

异常流程:

1、 商户在招行侧开通IP白名单控制,请求源IP不在IP白单中
2、 报文验签失败
3、 报文参数非法
4、 无冻结交易

2. 请求地址

测试环境URL:

http://121.15.180.66:801/netpayment_directlink_nosession/CompleteFreeze.do

生产环境URL:

https://merchserv.netpay.cmbchina.com/merchserv/CompleteFreeze.do

3. 请求报文

请求报文参数类型(长度)必填描述示例
jsonRequestDataStringMjson格式的请求参数,详见jsonRequestData定义

jsonRequestData参数定义

参数名类型(长度)必填描述示例
versionString(3)M固定为2.02.0
charsetString(8)M编码格式,固定为UTF-8UTF-8
signStringM使用商户支付密钥对reqData内的数据进行签名
signTypeStringM固定为SHA-256SHA-256
reqData请求数据


dateTimeString(14)M请求时间,商户发起该请求的时间,精确到秒。
格式:yyyyMMddHHmmss
20160623101430
branchNoString(4)M商户分行号,4位数字0755
merchantNoString(6)M商户号,6位数字002346
merchantSerialNoString(32)M商户冻结完成交易流水号,全局唯一。6到32位数字或字母,商户生成。2016062310143088
origDateString(8)M原商户资金冻结交易日期YYYYMMDD20160623
origOrderNoString(32)M原商户资金冻结订单号2016062310143011
amountString(16)M冻结完成扣款金额,以元为单位,格式XXXX.XX200.00
subMerchantNoString(30)O二级商户编码。当前订单为商户的二级商户的订单时需要传送;必须为数字或英文字母
subMerchantNameString(100)O二级商户名称。当前订单为商户的二级商户的订单时需要传送
subMerchantTPCodeString(7)O当前订单为商户的二级商户的订单时需要传送;必须为数字或英文字母
subMerchantTPNameString(100)O当前订单为商户的二级商户的订单时需要传送;必须为数字或英文字母
merchantParaString(256)O交易附加参数。请不要使用特殊字符+或\或“停车费

请求示例:

json报文组织:

{
    "version":"2.0",
    "sign":"d921860bd95c4f6f0eb8665951be85ca5d9d88d4e100a8d0678f309593b3b109",
    "signType":"SHA-256",
    "reqData":{
        "dateTime":"20201217191323",
        "branchNo":"0731",
        "merchantNo":"000034",
        "merchantSerialNo":"99990000005",
        "origDate":"20201217",    
        "origOrderNo":"9999000001",
        "amount":"0.01",
        "subMerchantNo":"",
        "subMerchantName":"",
        "subMerchantTPCode":"",
        "subMerchantTPName":"",
        "merchantPara":""
        }
}

表单组织:

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

待签名字符串(未包含支付密钥):

amount=0.01&branchNo=0731&dateTime=20201217191323&merchantNo=000034&merchantPara=&merchantSerialNo=99990000005&origDate=20201217&origOrderNo=9999000001&subMerchantName=&subMerchantNo=&subMerchantTPCode=&subMerchantTPName=

4. 响应报文

参数名类型(长度)必填描述示例
versionString(3)M固定为2.02.0
charsetString(8)M参数编码,固定为UTF-8UTF-8
signStringM报文签名,使用商户支付密钥
对rspData内的数据进行验签

signTypeStringM签名算法,固定为SHA-256SHA-256
rspData应答数据


rspCodeStringM处理结果返回码

SUC0000:请求处理成功

其他:请求处理失败
SUC0000
rspMsgStringM处理结果返回码的描述信息
dateTimeString(14)M银行响应该请求的时间,格式yyyyMMddHHmmss20160623101430
merchantSerialNoString(32)M商户解冻交易请求流水号2016062310143088
bankSerialNoString(20)M银行处理该请求的流水号2016062310143099
bankDateString(8)M银行冻结完成处理日期,格式yyyyMMdd20160623
bankTimeString(6)M银行冻结完成处理时间,格式HHmmss101430
amountStringM冻结完成金额,格式XXXX.XX10.01
feeStringC手续费金额,以元为单位,格式XXXX.XX0.01
settleAmountStringM实际冻结完成金额,以元为单位,格式XXXX.XX10.01
discountAmountStringM优惠金额,以元为单位,格式XXXX.XX10.01
以下字段联系招行配置控制参数后返回(默认不返回):
uniqueUserIDString(30)C支付用户ID,由身份证+姓名生成(推荐使用)UQwanCunLbp6cl1RbDFODrhLrAa48=
expandUserIDString(30)C一网通用户ID,由一网通ID生成(招行一网通用户的身份标识)EUfirwdVQVKhffJmjQhMod0dS6GYY=

相应示例:

正常json报文组织:

{
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "version":"2.0",
    "charset":"UTF-8",
    "rspData":{
        "expandUserID":"EUqF6oCJ1RZ3dW3jVCXVblyFk/hR8=",
        "uniqueUserID":"UQKqeWHDJKoO85gQhrobXHpTxWWeM=",
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20201129150007",
        "merchantSerialNo":"99990000006",
        "bankSerialNo":"115W609A0003AD00000A",
        "bankDate":"20201129",
        "bankTime":"145948",
        "amount":"9.01",
        "fee":"0.09",
        "settleAmount":"9.01",
        "discountAmount":"0"
        }
}

异常json报文组织:

{
    "sign":"xxx",
    "signType":"SHA-256",
    "version":"2.0",
    "charset":"UTF-8",
    "rspData":{
        "rspCode":"MSS3824",
        "rspMsg":"MSS3824.冻结完成失败.交易已完成划扣 [DJ141103]"
    }
}

5. 错误码

错误码描述解决方案
MSS9900请求数据Json转换异常检验并修改请求报文数据
MSS9002版本号错误Version固定为“1.0”
MSS9003签名算法错误目前仅支持“SHA-256”
MSS3411签名错误验证签名是否正确,请参考签名示例
MSS1016分行号格式错误分行号格式应为4位数字
MSS1017商户号格式错误商户号格式应为6位数字
MSS1020金额格式错误金额格式应xxxx.xx
MSS1022订单日期或者时间格式错误日期应为yyyyMMdd格式,
时间应为yyyyMMddHHmmss格式
MSS1113商户交易流水号格式错误格式应为6—32位字母或数字
MSS8011主机无此商户定义检查商户号、分行号是否正确
MSS2038非法商户:商户参数未定义检查商户数据是否正确
MSS1104请求时间延迟检查dateTime参数,不能早于服务器时间前30分钟
MSS3209该IP不允许发起此交易请检查商户管理系统配置参数
MSS1114原冻结交易商户订单号格式错误格式应为6—32位字母或数字
MSS1098二级商户号长度超长不能超过30位
MSS1097二级商户号格式不正确必须全部为数字或字母
MSS1100二级商户类型编码长度超长不能超过7位
MSS1099二级商户类型编码格式不正确必须全部为数字
MSS1116二级商户名称格式不正确不能包含特殊字符
MSS1117二级商户类型名称不正确不能包含特殊字符
MSS1118交易附加参数格式错误长度不超过256位
MSS3824冻结完成失败具体失败原因参考报错信息