按退款日期查询退款API

请求地址

生产环境
https://payment.ebank.cmbchina.com/NetPayment/BaseHttp.dll?QueryRefundByDate

测试环境
http://121.15.180.66:801/NetPayment_dl/BaseHttp.dll?QueryRefundByDate

请求报文

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

参数 类型(长度) 必填 描述 示例
version String(3) M 接口版本号,固定为”1.0” 1.0
charset String(8) M 参数编码,固定为“UTF-8” UTF-8
sign String M 报文签名,对reqData内的数据进行签名
signType String M 签名算法,固定为”SHA-256” SHA-256
reqData 请求数据
dateTime String(14) M 请求时间,商户发起该请求的当前时间格式:yyyyMMddHHmmss 20160623120100
branchNo String(4) M 商户分行号,4位数字 0755
merchantNo String(6) M 商户号,6位数字 000054
beginDate String(8) M 开始日期,退款日期格式:yyyyMMdd 20160624
endDate String(8) M 结束日期,格式:yyyyMMdd 20160625
operatorNo String O 操作员号,商户结账系统的操作员 9999
nextKeyValue String(40) C
续传键值,首次查询填“空”;
后续查询,按应答报文中返回的nextKeyValue值原样传入.
HH00012016050309493316250308400000000010

请求示例

1.json报文组织:

{
    "version":"1.0",
    "charset":"UTF-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "reqData":{
        "dateTime":"20160806134824",
        "branchNo":"0755",
        "merchantNo":"000054",
        "beginDate":"20160805",
        "endDate":"20160805",
        "operatorNo":"9999",
        "nextKeyValue":""
    }
}

2.表单组织:

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

3.待签名字符串示例(未包含支付密钥):
beginDate=20160805&branchNo=0755&dateTime=20160806134824&endDate=20160805&merchantNo=000054&nextKeyValue=&operatorNo=9999

响应报文

参数 类型(长度) 必填 描述 示例
version String(3) M 接口版本号,固定为”1.0” 1.0
charset String(8) M 参数编码,固定为UTF-8 UTF-8
rspData 应答数据
rspCode String M
处理结果,SUC0000:请求处理成功
其他:请求处理失败
SUC0000
rspMsg String C 详细信息,请求处理失败时返回错误信息
dateTime String(14) M 响应时间,银行返回该数据的时间格式:yyyyMMddHHmmss 20160624121212
hasNext String(1) M
续传标志,Y:有续传(还有更多记录);
N:无续传(记录已返回完毕)。
Y
nextKeyValue String C 续传键值,当hasNext=Y时必传。
dataCount String M 返回条数,本次查询返回条数 200
dataList String
记录数据,每笔记录一行,行之间以\r\n分隔。
第一行为表头;
从第二行起为数据记录;
行内的参数以逗号和`符号分隔(`为标准键盘1 左边键的字符),字段顺序与表头一致。
数据记录定义如下:
branchNo String(4) M 商户分行号,4位数字 0755
merchantNo String(6) M 商户号,6位数字 000054
date String(8) M 商户订单日期,格式:yyyyMMdd 20160624
orderNo String(10) M 商户订单号 9999000001
bankSerialNo String(20) M 银行的订单流水号 16250327200000000020
orderRefNo String(32) O 订单参考号
refundSerialNo String(20) M 银行退款流水号 16280587500000000020
orderStatus String(3) M
退款状态,210:已直接退款
240:已授权退款
3
currency String(2) M 币种,固定为:“10” 10
amount String M 退款金额,格式:xxxx.xx 0.01
fee String M 费用金额,格式:xxxx.xx 0.01
refundDesc String O 退款说明
bankDate String(8) M 银行受理日期,格式:yyyyMMdd 20160624
bankTime String(6) M 银行受理时间,格式:HHmmss 121201

响应示例

1.正常json报文组织:

{
    "version":"1.0",
    "charset":"gbk",
    "rspData":{
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20160825144658",
        "hasNext":"N",
        "nextKeyValue":"HH00012016080508381016280587500000000010",
        "dataCount":"2",
        "dataList":"branchNo,`merchantNo,`date,`orderNo,`bankSerialNo,`orderRefNo,`refundSerialNo,`orderStatus,`currency,`amount,`fee,`refundDesc,`bankDate,`bankTime\r\n0755,`000054,`20160804,`9999000003,`16280481900000000010,`,`16280535600000000010,`210,`10,`30.00,`3.00,`,`20160805,`083849\r\n0755,`000054,`20160804,`9999000005,`16280418800000000010,`,`16280587500000000010,`210,`10,`61.00,`6.10,`,`20160805,`083810"
    }
}

2.异常json报文组织:

{
    "version":"1.0",
    "charset":"UTF-8",
    "rspData":{
        "rspCode":"MSS1068",
        "rspMsg":"NP1068.结束日期格式错误"
    }
}

错误码

错误码 错误描述 解决方案
MSS9900 请求数据Json转换异常 校验并修改请求报文数据
MSS3411 签名错误 验证签名是否正确,请参考签名示例
MSS3107 无效续传键值 续传键值长度不超过40位,初始不用填,续传填上一返回报文续传键值
MSS9901 编码格式错误 请校验编码是否为UTF-8
MSS3809 查询失败 直连系统连接主机失败,稍后再试
MSS3419 退款状态未知 查询的订单退款状态异常,建议一个小时以后再查询。
MSS0008 超过最大并行请求处理数限制 直连系统业务繁忙,稍后再试
MSS1016 分行号格式错误 分行号格式应为4位数字
MSS1017 商户号格式错误 商户号格式应为6位数字
MSS1019 操作员格式错误 操作员格式应为4位数字
MSS1022 订单日期或者时间格式错误 日期应为yyyyMMdd格式,时间应为yyyyMMddHHmmss格式
MSS1025 日期对格式错误 起始日期应小于结束日期
起始日期应小于结束日期 主机无此商户定义 检查商户号、分行号是否正确

FAQ

Q1. 续传键值的用途是什么?应该如何使用续传键值?

对于批量查询的API,如果查询结果记录数较多,一次通讯可能无法返回所有的记录数,这个时候我们采用续传键值的方法实现翻页查询.

首次查询续传键值填空字符串,此时银行系统会从头开始返回查询结果.商户收到返回报文后,应当判断续传标志hasNext,如果hasNext=Y则时表示银行还有数据返回给商户,商户下次查询取前一返回报文的nextKeyValue值原样发送给银行,银行会从上一次返回结果处继续返回结果记录,直至hasNext=N表示查询完毕.

关于网站迁移公告


为提供更优质的开发技术支持,本网站已于2019年8月12日正式迁移至新域名http://openhome.cmbchina.com/paynew/pay/Home,敬请访问并收藏。原网站域名已停止更新维护,请以新网站提供的文档信息为准。

由此给您带来的不便,敬请谅解。


招商银行一网通支付技术支持小组

2019年8月12日