APP支付

按银行日期查询已结账订单API

请求地址

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

测试环境
http://merchserv.cmburl.cn/merchserv/BaseHttp.dll?QuerySettledOrderByBankDate

请求报文

报文的参数名: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
开始日期beginDateString(8)M格式:yyyyMMdd20160624
结束日期endDateString(8)M201606259999
操作员号operatorNoStringM商户结账系统的操作员号9999
续传键值nextKeyValueString(40)C长度只能为0或40;
首次查询填“空”;
后续查询,按应答报文中返回的nextKeyValue值原样传入。


请求示例

1.json报文组织:

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

2.表单组织:

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

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

beginDate=20160502&branchNo=0755&dateTime=20161118153749&endDate=20160503&merchantNo=000054&nextKeyValue=&operatorNo=9999


响应报文

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

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

其他:请求处理失败

SUC0000
详细信息rspMsgStringM请求处理失败时返回错误信息
响应时间dateTimeString(14)M银行返回该数据的时间。
格式:yyyyMMddHHmmss
20160624121212
续传标志hasNextString(1)MY:有续传(还有更多记录);
N:无续传(记录已返回完毕)。
Y
续传键值nextKeyValueString(40)C当hasNext=Y时必传。
返回条数dataCountStringM本次查询返回条数。200
记录数据dataListString
每笔记录一行,每行以\r\n 结束。第一行为表头;从第二行起为数据记录;各参数以逗号和`符号分隔(`为标准键盘1 左边键的字符),字段顺序与表头一致。数据记录定义如下:"branchNo,`merchantNo,`date\r\n 0755,`000054,`20160624"
分行号branchNoString(4)M商户分行号,4位数字0755
商户号merchantNoString(6)M商户号,6位数字000054
订单日期dateString(8)M商户的订单日期,格式:yyyyMMdd20160624
订单号orderNoString(32)M商户的订单号9999000001
银行订单流水号bankSerialNoString(20)M银行的订单流水号20160624
银行订单参考号orderRefNoString(32)O银行的订单参考号
交易币种currencyString(2)M固定为:“10”10
订单金额orderAmountStringM格式:xxxx.xx0.01
费用金额feeStringM格式:xxxx.xx0.01
银行受理日期acceptDateString(8)M格式:yyyyMMdd20160624
银行受理时间acceptTimeString(6)M格式:HHmmss121201
结算金额settleAmountStringM格式:xxxx.xx0.01
优惠金额discountAmountString(14)M单位为元,精确到小数点后两位;格式为:xxxx.xx元;无优惠则返回0.000.00
订单状态orderStatusString(3)M0:已结账
1:已撤销
2:部分结账
4:未结账
5:无效状态
6:未知状态/订单失败
0代表终态
银行处理日期settleDateString(8)M格式:yyyymmdd20160624
银行处理时间settleTimeString(6)M格式:HHmmss121201
卡类型cardTypeStringM02:一卡通
03:信用卡
08:他行借记卡

09:他行信用卡

10:本行数币钱包支付

11:他行数币钱包支付

02
商户自定义参数merchantParaString(100)O商户在支付接口中传送的merchantPara参数,超过100字节自动截断。

提示:

1)查询接口返回的结果中,rspCode=‘SUC0000’且orderStatus=‘0’,代表该笔订单处理成功且已经结账。

2)如果收到orderStatus=‘6’,请继续查询。若轮询时长超出“expireTimeSpan(订单过期时间跨度)+1分钟”,orderStatus仍返回‘6’,则联机可先判断订单支付失败。

3)商户侧应具备T+1对账的机制,来识别处理T日可能出现的差错交易。

响应示例

1.正常json报文组织:

{
   "version":"1.0",
    "charset":"utf-8",
    "rspData":{
        "rspCode":"SUC0000",
        "rspMsg":"",
        "dateTime":"20161118154120",
        "hasNext":"N",
        "nextKeyValue":"HH00012016050309524716250378400000000010",
        "dataCount":"3",
        "dataList":"branchNo,`merchantNo,`date,`orderNo,`bankSerialNo,`orderRefNo,`currency,`orderAmount,`fee,`acceptDate,`acceptTime,`settleAmount,`discountAmount,`orderStatus,`settleDate,`settleTime,`cardType,`merchantPara\r\n 0755,`000054,`20160503,`9999000003,`16250311000000000010,`,`10,`0.01,`5.00,`20160503,`113201,`0.01,`0.00,`0,`20160503,`113201,`02,`para1\r\n 0755,`000054,`20160503,`9999000005,`16250324400000000010,`,`10,`0.01,`5.00,`20160503,`110728,`0.01,`0.00,`0,`20160503,`110728,`02,`para1\r\n 0755,`000054,`20160503,`9999000059,`16250378400000000010,`,`10,`3.00,`5.00,`20160503,`095247,`3.00,`0.00,`0,`20160503,`095247,`02,`para1 "
    }
}

2.异常jason报文组织

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


错误码

错误码描述解决方案
MSS9002版本号错误
Version固定为“1.0”
MSS9003签名算法错误目前只支持“SHA-256”
MSS9900请求数据Json转换异常校验并修改请求报文数据
MSS3411签名错误验证签名是否正确,请参考签名示例
USR0008系统业务繁忙,稍后再试超过最大并行请求处理数限制
MSS1016分行号格式错误分行号格式应为4位数字
MSS1017商户号格式错误操作员格式应为6位数字
MSS1067起始日期格式不正确格式应为yyyyMMdd
MSS1068结束日期格式不正确格式应为yyyyMMdd
MSS1025日期对格式错误起始日期应小于结束日期
MSS8011主机无此商户定义检查商户号、分行号是否正确
MSS2038非法参数:商户参数未定义检查商户数据是否正确
MSS3806查询失败具体失败原因请参考报错信息