对接银联商务微信公众号支付遇到的坑
微信公眾號(hào)支付和微信掃碼支付在 支付結(jié)果通知上有很大的區(qū)別,公眾號(hào)支付主要是以異步通知去確定支付結(jié)果,也可以通過(guò)查詢接口,而掃碼支付通常調(diào)用查詢接口去查詢支付狀態(tài)。因而,公眾號(hào)支付的異步通知是一個(gè)需要注意的問(wèn)題。
1.異步通知回調(diào)問(wèn)題,由于自己疏忽沒有注意到銀聯(lián)商務(wù)異步通知的詳細(xì)說(shuō)明,導(dǎo)致異步通知不到,具體描述如下:
支付完成后,渠道方會(huì)通知網(wǎng)付前置賬單系統(tǒng),賬單系統(tǒng)收到通知后會(huì)組織結(jié)果信息發(fā)送通知到商戶的通知地址。商戶的通知地址可以在商戶信息中配置,也可以在上送詳單信息時(shí)上送,若都多處都配置了通知地址,那么賬單系統(tǒng)會(huì)把結(jié)果通知到所有的地址上。
注意:商戶收到通知后,需要對(duì)通知做出響應(yīng):成功收到時(shí)響應(yīng)”SUCCESS”;失敗時(shí)響應(yīng)”FAILED”。
針對(duì)重復(fù)收到通知的問(wèn)題處理:如果網(wǎng)付沒有收到商戶響應(yīng)的SUCCESS字串,或者商戶應(yīng)答的報(bào)文中不包含SUCCESS字串,或者網(wǎng)絡(luò)異常,系統(tǒng)會(huì)在24小時(shí)內(nèi)嘗試多次通知。
商戶收到重復(fù)通知時(shí)可以執(zhí)行以下1或2進(jìn)行處理:2.通知報(bào)文里面有商戶訂單號(hào),商戶可根據(jù)訂單號(hào)和訂單狀態(tài)判斷是否是重復(fù)通知,并忽略已經(jīng)處理了的訂單的重復(fù)通知。
通知會(huì)以POST形式發(fā)出,包含參數(shù)如下(出于安全考慮,實(shí)際通知報(bào)文含有個(gè)隨機(jī)字段,key-value值不固定,且參與簽名)
由于是做銀聯(lián)商務(wù)支付網(wǎng)關(guān)設(shè)計(jì),在異步通知這一塊僅需要接收銀商傳過(guò)來(lái)的異步通知數(shù)據(jù),對(duì)數(shù)據(jù)不做任何處理,轉(zhuǎn)發(fā)給請(qǐng)求網(wǎng)關(guān)的C端程序。
最開始在設(shè)計(jì)異步通知時(shí),采用request中的forward方法,,如下圖所示,實(shí)測(cè)C端接收不到轉(zhuǎn)發(fā)的異步通知數(shù)據(jù),查閱資料后發(fā)現(xiàn)這種方式僅限于服務(wù)內(nèi)部轉(zhuǎn)發(fā)消息。
因此,轉(zhuǎn)手使用http通信,在接收到銀聯(lián)商務(wù)異步通知數(shù)據(jù)后,,通過(guò)post請(qǐng)求轉(zhuǎn)發(fā)給C端程序。
下圖為網(wǎng)關(guān)內(nèi)部接收異步通知地址,此地址需在請(qǐng)求下單接口時(shí)填入
接口地址
2.針對(duì)注意:商戶收到通知后,需要對(duì)通知做出響應(yīng):成功收到時(shí)響應(yīng)”SUCCESS”;失敗時(shí)響應(yīng)”FAILED”。
針對(duì)重復(fù)收到通知的問(wèn)題處理:如果網(wǎng)付沒有收到商戶響應(yīng)的SUCCESS字串,或者商戶應(yīng)答的報(bào)文中不包含SUCCESS字串,或者網(wǎng)絡(luò)異常,系統(tǒng)會(huì)在24小時(shí)內(nèi)嘗試多次通知。
在接收到異步通知后,沒有返回SUCCESS或FAILED,導(dǎo)致異步通知持續(xù)不斷發(fā)送。
解決:對(duì)接受的異步通知map做判斷,如圖示,返回響應(yīng)信息。
3.在對(duì)接銀聯(lián)商務(wù)支付下單接口時(shí),需上送異步通知地址,用于接收異步通知,也已經(jīng)正常接收。
但是在調(diào)用退款接口時(shí),并沒有上送異步通知地址,在查看日志后發(fā)現(xiàn)也有退款的異步通知,其中status值為“TRADE_REFUND”(下單接口異步通知為“TRADE_SUCCESS”),這種情況在最開始接入銀聯(lián)商務(wù)時(shí)并沒有返回退款的異步通知,今天測(cè)試時(shí)突然發(fā)現(xiàn)有了,,,,,可能是銀聯(lián)商務(wù)系統(tǒng)在接收下單請(qǐng)求時(shí)默認(rèn)了用戶填入的notify_url吧(強(qiáng)行解釋一波)。
總結(jié)
以上是生活随笔為你收集整理的对接银联商务微信公众号支付遇到的坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 中国联通定位平台及其应用
- 下一篇: java对接银联商务公众号+服务窗支付(