APP支付

按商户日期查询已结账订单API

请求地址

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

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

请求报文

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

参数类型(长度)必填描述示例
versionString(3)M接口版本号,固定为”2.0”2.0
charsetString(8)M参数编码,固定为UTF-8UTF-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)M结束日期,格式:yyyyMMdd20160625
operatorNoString(4)M操作员号,商户结账系统的操作员号9999
nextKeyValueString(40)C续传键值,长度只能为0或40;首次查询填“空”;后续查询,按应答报文中返回的nextKeyValue值原样传入。HH00012016050309493316250308400000000010


请求示例

1.json报文组织:

{
   "version":"2.0",
   "charset":"UTF-8",
   "sign":"见签名处理章节",
   "signType":"SHA-256",
   "reqData":
       {
        "dateTime":"20160806131325",
        "branchNo":"0755",
        "merchantNo":"000054",
        "beginDate":"20160806",
        "endDate":"20160806",
        "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=20160806&branchNo=0755&dateTime=20160806131325&endDate=20160806&merchantNo=000054&nextKeyValue=&operatorNo=9999


响应报文

参数类型(长度)必填描述示例
versionString(3)M接口版本号,固定为”2.0”2.0
charsetString(8)M参数编码,固定为“UTF-8”UTF-8
signStringM报文签名,使用商户支付密钥对rspData内的数据进行验签
signTypeStringM签名算法,固定为”SHA-256”SHA-256
rspData应答数据
rspCodeStringM处理结果,SUC0000:请求处理成功(不能仅通过该字段判断订单成功)
其他:请求处理失败
SUC0000
rspMsgStringM详细信息,请求处理失败时返回失败原因
dateTimeString(14)M响应时间,银行返回该数据的时间。 格式:yyyyMMddHHmmss20160624121212
hasNextString(1)M续传标志,Y:有续传(还有更多记录);N:无续传(记录已返回完毕)。Y
nextKeyValueString(40)C续传键值,当hasNext=Y时必填
dataCountStringM返回条数,本次查询返回条数。200
dataListString
记录数据,每笔记录一行,行之间以\r\n分隔。 第一行为表头; 从第二行起为数据记录; 行内的参数以逗号和`符号分隔(`为标准键盘1 左边键的字符),字段顺序与表头一致。 数据记录定义如下:branchNo,`merchantNo,`date\r\n0755,`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)M订单状态,0:已结账
1:已撤销
2:部分结账
4:未结账
5:无效状态
6:未知状态/订单失败
0代表终态
settleDateString(8)M银行处理日期,格式:yyyyMMdd20160624
settleTimeString(6)M银行处理时间,格式:HHmmss121201
cardTypeStringM卡类型,02:一卡通
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",
   "sign":"见签名处理章节",
   "signType":"SHA-256",
   "rspData":{
       "rspCode":"SUC0000",
       "rspMsg":"",
       "dateTime":"20160825101406",
       "hasNext":"N",
       "nextKeyValue":"HH00012016080611290816280608000000000010",
       "dataCount":"2",
       "dataList":"branchNo,`merchantNo,`date,`orderNo,`bankSerialNo,`orderRefNo,`currency,`orderAmount,`fee,`acceptDate,`acceptTime,`settleAmount,`discountAmount,`orderStatus,`settleDate,`settleTime,`cardType\r\n0755,`000054,`20160806,`9999080601,`16280606400000000010,`,`10,`1000.00,`100.00,`20160806,`153313,`1000.00,`0.00,`0,`20160806,`153313,`02\r\n0755,`000054,`20160806,`9999136801,`16280608000000000010,`,`10,`0.19,`0.01,`20160806,`113535,`0.19,`0.00,`0,`20160806,`113535,`03,`para1"
   }
}

2.异常json报文组织:

{
	"version":"1.0",
    "charset":"utf-8",
    "sign":"见签名处理章节",
    "signType":"SHA-256",
    "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查询失败具体失败原因参考报错信息