退款API

请求地址

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

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

请求报文

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

参数名称 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
订单日期 date String(8) M 商户订单日期,格式:yyyyMMdd 20160624
订单号 orderNo String(32) M 商户订单号,支付时的订单号 9999000001
退款流水号 refundSerialNo String(20) O 商户生成,同一笔订单内,同一退款流水号只能退款一次。
可用于防重复退款。
退款金额 amount String(14) M 格式:xxxx.xx 固定两位小数,最大11位整数 0.01
退款描述 desc String(100) O
操作员号 operatorNo String O 商户结账系统的操作员号,选填,若填了则会对操作员号和密码进行校验,若不填则不校验。 9999
操作员密码加密算法 encrypType String O RC4:使用RC4算法对操作员密码进行加密,加密密钥为支付密钥。
DES:使用DES算法对操作员密码进行加密,加密密钥为商户支付密钥的前8位,不足8位则右补0。
空:默认不加密;
操作员密码 pwd String O 操作员登录密码。使用encrypType算法加密后的密码
注意:加密后的密文必须转换为16进制字符串表示
BF6DC5D23519

请求示例

1.json报文组织:

{ 
    "version":"1.0",
    "charset":"UTF-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "reqData":{
        "dateTime":"20160806150213",
        "branchNo":"0755",
        "merchantNo":"000054",
        "date":"20160629",
        "orderNo":"9999000042",
        "amount":"0.01",
        "desc":"",
        "refundSerialNo":"201606250000001",
        "operatorNo":"9999",
        "encrypType":"RC4",
        "pwd":"BF6DC5D23519"
    }
}

2.表单组织:

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

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

amount=0.01&branchNo=0755&date=20160629&dateTime=20160806150213&desc=&encrypType=RC4&merchantNo=000054&operatorNo=9999&orderNo=9999000042&pwd=BF6DC5D23519&refundSerialNo=201606250000001 

响应报文

参数名称 JSON键值 类型(长度) 必填 描述 示例
接口版本号 version String(3) M 固定为”1.0” 1.0
参数编码 charset String(8) M 固定为“UTF-8” UTF-8
应答数据 rspData
处理结果 rspCode String M SUC0000:请求处理成功
MSS3817:退款已经受理,请稍后查询订单状态
其他:请求处理失败
SUC0000
详细信息 rspMsg String M 请求处理失败时返回失败原因
响应时间 dateTime String(14) M 银行返回该数据的时间,精确到秒
格式:yyyyMMddHHmmss
20160624121212
银行退款流水号 bankSerialNo String(20) M 银行的退款流水号 16280672300000000010
退款币种 currency String(2) M 固定为:“10” 10
退款金额 amount String M 格式:xxxx.xx 0.01
银行退款参考号 refundRefNo String O 银行的退款参考号 608061000002
银行受理日期 bankDate String(8) M 格式:yyyyMMdd 20160624
银行受理时间 bankTime String(6) M 格式:HHmmss 121201
商户上送流水号 refundSerialNo String M 商户上送流水号 123456789
退款金额 settleAmount String M 实际退款金额,格式:xxxx.xx 0.01
退回优惠金额 discountAmount String M 退回优惠金额,格式:xxxx.xx 0.01

响应示例

1.正常json报文组织:

{
    "version":"1.0",
    "charset":"UTF-8",
    "rspData":{
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20160806150217",
        "bankSerialNo":"16280672300000000010",
        "currency":"10",
        "amount":"0.01",
        "refundRefNo":"608061000002",
        "bankDate":"20160806",
        "bankTime":"150052",
        "refundSerialNo":"123456789",
        "settleAmount":"0.01",
        "discountAmount":"0.01"
    }
}

错误码

错误码 描述 解决方案
MSS3111 密码格式错误(空密码或超长) 明文密码或者密文密码解密后,密码长度不超过16位
MSS3112 解密失败 服务器解密失败,请检查密文密码是否正确
MSS3113 无效加密类型 只支持RC4/DES加密
MSS3804 直连退款失败 直连系统连接主机失败,稍后再试
MSS3414 描述内容超长 长度不超过100位
MSS3202 重复的直连退款请求,拒绝处理 请勿重复提交
MSS1016 分行号格式错误 分行号格式应为4位数字
MSS1017 商户号格式错误 操作员格式应为6位数字
MSS1019 操作员格式错误 操作员格式应为4位数字
MSS1021 订单号格式错误 订单号格式应为6-32位(含6和32),数字+字母(大小字母)
MSS1022 订单日期或者时间格式错误 日期应为yyyyMMdd格式,时间应为yyyyMMddHHmmss格式
MSS8011 主机无此商户定义 检查商户号、分行号是否正确
MSS3815 无此定单 订单不存在
MSS3816 退款金额超限 检查退款金额是否超限

关于网站迁移公告


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

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


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

2019年8月12日