注意:因为以后可能会增加通知参数,请获取全量变量,然后遍历获取非空变量,而不能用request.getparam(“key”)这样用文档中的字段名来一个个获取,到时候收银宝增加通知字段,就无法兼容了.请参考demo
通知的每一个字段都会进行UTF-8的UrlEncode,如果商户接收结果的服务器用web容器进行接收,例如TOMCAT,IIS.则无需进行URLDecode,如果不是用web容器进行接收,而是读数据流自己进行解析,则需要进行UTF-8的UrlDecode
以java为例:
String trxreserve = "订购人+10086";
String sendData = URLEncoder.encode(trxreserve, "UTF-8");
String getData = URLDecoder.decode(sendData, "UTF-8");
通知响应结果:
商户服务端在接收到结果通知并正确处理后,应响应消息。正确处理响应success,其他响应或者不响应通联开发平台则通过重发机制进行重发,重发次数为5次
对后台通知交互时,如果通联收到商户的应答不符合规范或超时,通联认为通知失败,通联会通过一定的策略定期重新发起通知,尽可能提高通知的成功率,但通联不保证通知最终能成功。(通知频率为15s/15s/5m/10m/15m - 总计30m30s)
请求参数如下:
字段名称 |
类型 |
可空 |
说明 |
最长长度 |
备注 |
---|---|---|---|---|---|
appid |
string |
否 |
收银宝APPID |
8 |
|
outtrxid |
string |
否 |
第三方交易号 |
50 |
暂未启用 |
trxcode |
string |
否 |
交易类型 |
8 |
详见附录交易类型 |
trxid |
string |
否 |
收银宝交易单号 |
50 |
通联收银宝交易流水号 |
initamt |
string |
否 |
原始下单金额 |
20 |
与请求trxamt值一致 |
trxamt |
long |
否 |
交易金额 |
20 |
单位:分 |
trxdate |
string |
否 |
交易请求日期 |
8 |
yyyymmdd |
paytime |
string |
否 |
交易完成时间 |
14 |
yyyymmddhhmmss |
chnltrxid |
string |
可 |
渠道流水号 |
64 |
如支付宝,微信平台订单号 |
trxstatus |
string |
否 |
交易结果码 |
4 |
交易状态详见交易返回码说明 |
cusid |
string |
否 |
商户编号 |
15 |
|
termno |
string |
可 |
终端编号 |
20 |
|
termbatchid |
string |
可 |
终端批次号 |
16 |
|
termtraceno |
string |
可 |
终端流水号 |
6 |
|
termauthno |
string |
可 |
终端授权码 |
20 |
|
termrefnum |
string |
可 |
终端参考号 |
50 |
|
trxreserved |
String |
可 |
业务关联内容 |
160 |
交易备注 |
srctrxid |
string |
可 |
原交易流水 |
50 |
通联原交易流水,冲正撤销交易本字段不为空 |
cusorderid |
string |
否 |
业务流水 |
32 |
统一下单对应的reqsn订单号 |
acct |
string |
可 |
交易账号 |
64 |
如果是刷卡交易,则是隐藏的卡号,例如 |
fee |
string |
可 |
手续费 |
15 |
单位:分 |
signtype |
string |
可 |
签名类型 |
3 |
MD5/RSA/SM2。为空默认MD5 |
cmid |
string |
可 |
渠道子商户号 |
32 |
仅微信/支付宝交易有效 |
chnlid |
string |
可 |
渠道号 |
32 |
仅微信交易有效 |
chnldata |
String |
可 |
渠道信息 |
- |
仅返回云闪付/微信/支付宝的渠道信息 |
accttype |
String |
可 |
借贷标识 |
2 |
00-借记卡 |
bankcode |
String |
可 |
发卡行 |
20 |
|
logonid |
String |
可 |
支付宝买家账号 |
32 |
|
sign |
String |
否 |
sign校验码 |
32 |
|