查询单笔订单API

请求地址

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

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

请求报文

报文的参数名: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
type String(1) M
查询类型,A:按银行订单流水号查询
B:按商户订单日期和订单号查询;
B
bankSerialNo String(20) C 银行订单流水号,type=A时必填
date String(8) M 商户订单日期,格式:yyyyMMdd 20160623
orderNo String(32) C type=B时必填商户订单号 9999000001
operatorNo String O 商户结账系统的操作员号 9999

示例报文

1.json报文组织:

{
    "version":"1.0",
    "charset":"UTF-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "reqData":{
        "dateTime":"20160623120100",
        "branchNo":"0755",
        "merchantNo":"000054",
        "type":"B",
        "bankSerialNo":"16250327200000000020",
        "date":"20160503",
        "orderNo":"9999030401",
        "operatorNo":"9999"
    }
}

2.表单组织:

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

3.待签名字符串示例(未包含支付密钥):
bankSerialNo=16250327200000000020&branchNo=0755&date=20160503&dateTime=20160825140816&merchantNo=000054&operatorNo=9999&orderNo=9999030401&type=B

响应报文

参数 类型(长度) 必填 描述 示例
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
branchNo String(4) M 商户分行号,4位数字 0755
merchantNo String(6) M 商户号,6位数字 000054
date String(8) M 商户订单日期,格式:yyyyMMdd 20160624
orderNo String(32) M 商户订单号 9999000001
bankSerialNo String(20) M 银行的订单流水号 16250327200000000020
currency String(2) M 交易币种,固定为:“10” 10
orderAmount String M 订单金额,格式:xxxx.xx 0.01
fee String M 费用金额,格式:xxxx.xx 0.01
bankDate String(8) M 银行受理日期,格式:yyyyMMdd 20160624
bankTime String(6) M 银行受理时间,格式:HHmmss 121201
settleAmount String M 结算金额,格式:xxxx.xx 0.01
discountAmount String(13) M
优惠金额,格式:xxxx.xx
无优惠时返回0.00
0.00
orderStatus String(3) M
订单状态,0:已结帐
1:已撤销
2:部分结帐
4:未结帐
7:冻结交易-冻结金额已经全部结账
8:冻结交易,冻结金额只结帐了一部分
0
settleDate String(8) M 银行处理日期,格式:yyyyMMdd 20160624
settleTime String(6) M 银行处理时间,格式:HHmmss 121201
cardType String O
卡类型,02:一卡通;
03:信用卡;
07:他行卡
merchantPara String(100) O 商户自定义参数,商户在支付接口中传送的payNoticePara参数,超过100字节自动截断。

响应示例

●  正常json报文组织:

{
    "version":"1.0",
    "charset":"utf-8",
    "rspData":{
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20160825140752",
        "branchNo":"0755",
        "merchantNo":"000054",
        "date":"20160503",
        "orderNo":"9999030401",
        "bankSerialNo":"16250327200000000020",
        "currency":"10",
        "orderAmount":"0.01",
        "fee":"0.00",
        "bankDate":"20160503",
        "bankTime":"205620",
        "settleAmount":"0.01",
        "discountAmount":"0.00",
        "orderStatus":"0",
        "settleDate":"20160503",
        "settleTime":"205620",
        "cardType":"03",
        "merchantPara":"para1 "
    }
}

●  异常json报文组织:

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

错误码

错误码 错误描述 解决方案
MSS9900 请求数据Json转换异常 校验并修改请求报文数据
MSS3411 签名错误 验证签名是否正确,请参考签名示例
MSS3803 查询失败 直连系统连接主机失败,稍后再试
MSS9901 编码格式错误 请校验编码是否为UTF-8
MSS3100 无效查询类型 查询类型值应为A/B
MSS1016 分行号格式错误 分行号格式应为4位数字
MSS1017 商户号格式错误 商户号格式应为6位数字
MSS1019 操作员格式错误 操作员格式应为4位数字
MSS1021 订单号式错误 订单号格式应为6位/10位数字
MSS1022 订单日期或者时间格式错误 日期应为yyyyMMdd格式,时间应为yyyyMMddHHmmss格式
MSS1025 日期对格式错误 起始日期应小于结束日期
MSS1103 订单参考号格式错误 订单参考号格式应为20位数字
MSS8011 主机无此商户定义 检查商户数据是否正确
MSS3812 无对应记录 检查银行订单流水号、订单日期和订单号是否正确

FAQ

Q1. 订单日期,是以商户日期为准吗?

是的。在“单笔订单查询”、“已结帐订单查询”中,日期都是商户的日期。

Q2. 订单状态,有“失败”状态吗?

没有。能查到的订单都是成功的订单(极少数“状态不明”的除外)。

Q3. 订单状态的“未结账”、“撤销”、“已结帐”,是什么意思?

一网通支付目前只支持立即结账,因此不存在未结账和撤销状态,仅有已结账状态。

Q4. 订单有退款状态吗?退款和订单是什么关系?

订单没有退款状态。

在招行的网上支付系统中,退款和支付,是两种不同的交易。退款要通过退款查询才能查到。执行过退款的订单,状态不会有任何改变,仍然是“已结帐”状态。

关于网站迁移公告


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

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


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

2019年8月12日