请求地址
生产环境
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. 订单有退款状态吗?退款和订单是什么关系?
订单没有退款状态。
在招行的网上支付系统中,退款和支付,是两种不同的交易。退款要通过退款查询才能查到。执行过退款的订单,状态不会有任何改变,仍然是“已结帐”状态。