小程序冻结

退款单笔查询API

请求地址

生产环境
https://merchserv.netpay.cmbchina.com/merchserv/BaseHttp.dll?QuerySettledRefundV2

测试环境
http://121.15.180.66:801/netpayment_directlink_nosession/BaseHttp.dll?QuerySettledRefundV2

请求报文

报文的参数名:jsonRequestData,参数值JSON格式见下表

参数名称JSON键值类型(长度)必填描述示例
接口版本号versionString(3)M固定为”2.0”2.0
参数编码charsetString(8)M固定为“UTF-8”UTF-8
报文签名signStringM对reqData内的数据进行签名
签名算法signTypeStringM固定为“SHA-256”SHA-256
请求数据reqData
请求时间dateTimeString(14)M商户发起该请求的当前时间,精确到秒
格式:yyyyMMddHHmmss
20160623120100
分行号branchNoString(4)M商户分行号,4位数字0755
商户号merchantNoString(6)M商户号,6位数字000054
查询类型typeString(1)M查询类型
A:按银行退款流水号查单笔
B:按商户订单号+商户退款流水号查单笔
C: 按商户订单号查对应的所有退款
A
type=A时,需上送以下信息:
银行退款流水号bankSerialNoString(20)C银行退款流水号长度不超过20位20161101180000010001
type=B时,需上送以下信息:
商户订单号orderNoString(32)C商户原支付交易的订单号9999000001
订单日期dateString(8)C商户原支付交易的订单日期,格式:yyyyMMdd20160624
商户退款流水号merchantSerialNoString(20)C商户退款流水号长度不超过20位
20161101180000010001
type=C时,需上送以下信息:
商户订单号orderNoString(32)C商户原支付交易的订单号9999000001
订单日期dateString(8)C商户原支付交易的订单日期,格式:yyyyMMdd20160624


请求示例

1.json报文组织:

{ 
    "version":"2.0",
    "sign":"DFAC9FF11DB20CFB75DD219694E8EAFA5C38D5658B0DC4CBAF39759FAF6A56C8",
    "signType":"SHA-256",
    "charset":"UTF-8",
    "reqData":{
        "dateTime":"20161227161057",
        "branchNo":"0755",
        "merchantNo":"000054",
        "date":"20161105",
        "orderNo":"1336480523",
        "type":"C",
        "merchantSerialNo":"",
        "bankSerialNo":""
    }
}

2.表单组织:

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

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

bankSerialNo=&branchNo=0755&date=20161105&dateTime=20161227161057&merchantNo=000054&merchantSerialNo=&orderNo=1336480523&type=C


响应报文

参数名称JSON键值类型(长度)必填描述示例
接口版本号versionString(3)M固定为”2.0”2.0
参数编码charsetString(8)M固定为“UTF-8”UTF-8
报文签名signStringM报文签名,使用商户支付密钥对rspData内的数据进行验签
签名算法signTypeStringM签名算法,固定为“SHA-256”SHA-256
应答数据rsqData
处理结果rspCodeStringM

SUC0000:请求处理成功(不能仅通过该字段判断退款成功)

其他:请求处理失败

SUC0000
详细信息rspMsgStringC请求处理失败时返回错误信息
响应时间dateTimeString(14)M银行返回该数据的时间。
格式:yyyyMMddHHmmss
20160624121212
返回条数dataCountStringM本次查询返回条数2
记录数据dataListString
每笔记录一行,每行以\r\n 结束。第一行为表头;从第二行起为数据记录;各参数以逗号和`符号分隔(`为标准键盘1 左边键的字符),字段顺序与表头一致。数据记录定义如下:
分行号branchNoString(4)M商户分行号,4位数字0755
商户号merchantNoString(6)M商户号,6位数字000054
订单日期dateString(8)M商户的订单日期,格式:yyyyMMdd20160624
订单号orderNoString(32)M商户的订单号9999000001
银行退款流水号bankSerialNoString(20)M银行退款流水号16280587500000000020
商户退款流水号merchantSerialNoString(20)O商户上送流水号20161101180000010001
退款状态orderStatusString(3)M210:已直接退款
219:直接退款已受理
240:已授权退款
249:授权退款已受理
999:退款失败
210
币种currencyString(2)M固定为:“10”10
退款金额amountStringM格式:xxxx.xx0.01
费用金额feeStringM格式:xxxx.xx0.01
银行受理日期acceptDateString(8)M格式:yyyyMMdd20160624
银行受理时间acceptTimeString(6)M格式:HHmmss121201
银行处理日期bankDateString(8)M格式:yyyyMMdd20160624
银行处理时间bankTimeString(6)M格式:HHmmss121201
退款描述descString(100)O退款描述ABC123
实际退款金额settleAmountStringM格式:xxxx.xx0.01
退回优惠金额discountAmountStringM格式:xxxx.xx0.01
以下字段联系招行配置控制参数后返回(默认不返回):
支付用户标识uniqueUserIDString(30)C支付用户ID,由身份证+姓名生成(推荐使用)UQwanCunLbp6cl1RbDFODrhLrAa48=
一网通用户标识expandUserIDString(30)C一网通用户ID,由一网通ID生成(招行一网通用户的身份标识)EUfirwdVQVKhffJmjQhMod0dS6GYY=

提示:

1)对于通过调用接口发起的退款,收到报文中rspCode=‘SUC0000’且orderStatus=‘210’,代表该笔退款处理成功且已经到账。


响应示例

1.正常json报文组织:

{
    "version":"1.0",
    "charset":"utf-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "rsqData":{
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20161227161149",
        "dataCount":"1",
        "dataList":"branchNo,`merchantNo,`date,`orderNo,`bankSerialNo,`merchantSerialNo,`orderStatus,`currency,`amount,`fee,`acceptDate,`acceptTime,`bankDate,`bankTime,`desc\r\n0755,`000054,`20161105,`1336480523,`16322749300000000020,`123456789,`210,`10,`0.01,`0.00,`20161227,`160330,`20161227,`160330,`aaa"
    }
}

2.异常jason报文组织

{
     "version":"1.0",
    "charset":"UTF-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "rsqData":{
        "rspCode":"MSS3207",
        "rspMsg":"MSS3207.无效银行退款流水号"
    }
}


错误码

错误码描述解决方案
MSS9002版本号错误Version固定为“1.0”
MSS9003签名算法错误目前只支持“SHA-256”
MSS9900请求数据Json转换异常校验并修改请求报文数据
MSS3411签名错误验证签名是否正确,请参考签名示例
MSS3812无对应记录原交易不存在。请继续查询,直到超出轮询时长后(轮询时长建议设置“5分钟”以上),可当作失败;或直接使用原退款流水号重新发起退款。
USR0008超过最大并行请求处理数限制直连系统业务繁忙,稍后再试
MSS1016分行号格式错误分行号格式应为4位数字
MSS1017商户号格式错误操作员格式应为6位数字
MSS1022订单日期或者时间格式错误日期应为yyyyMMdd格式,时间应为yyyyMMddHHmmss格式
MSS1021订单号式错误订单号格式应为6-32位(含6和32),数字+字母(大小字母)
MSS1102退款流水号格式不正确应为数字或字母组成,商户退款流水号长度不能超过32位,银行退款流水号长度不能超过20位
MSS3207银行退款流水号格式不正确银行退款流水号长度不超过20位
MSS3208商户退款流水号格式不正确商户退款流水号长度不超过20位
MSS3114无效查询类型查询类型只能为A/B/C
MSS8011主机无此商户定义检查商户号、分行号是否正确
MSS2308非法商户:商户参数未定义检查商户数据是否正确
MSS3419退款状态未知请稍后重试
MSS3811查询失败具体失败原因参考报错信息