日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?

發(fā)布時(shí)間:2025/3/16 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在今天的文章中,我們將聊到重復(fù)付款的異常,即同一筆訂單,扣了用戶兩筆錢。

另外我們還將會(huì)提到另外一種異常,用戶扣款成功,但是訂單卻支付失敗的場(chǎng)景。

以上兩種異常對(duì)于被扣款的用戶來(lái)講,使用體驗(yàn)極差,自己多付了錢,訂單卻還不成功。所以如果不及時(shí)處理這兩類異常,那就真的等著被投訴吧。

?

重復(fù)付款異常

異常場(chǎng)景

重復(fù)付款異常一般常見于網(wǎng)銀支付,微信支付,支付寶等這類需要跳轉(zhuǎn)到一個(gè)支付網(wǎng)關(guān)頁(yè)(網(wǎng)銀支付),或者跳轉(zhuǎn)到錢包 APP(支付寶、微信),從而異步完成扣款的支付場(chǎng)景。

網(wǎng)銀支付流程

這種支付場(chǎng)景下,只能通過(guò)接受異步通知才能知道支付結(jié)果,我們一般將其稱為異步支付。

?PS:有了異步支付,那么同步支付是什么?

其實(shí)同步支付指的就是調(diào)用支付接口之后,就可以立刻返回支付結(jié)果的,比如銀行卡類快捷/代扣等支付就是同步支付。

當(dāng)然也有一些奇葩的銀行卡支付渠道,同步支付結(jié)果為受理成功,只能接受異步通知或者查詢返回支付結(jié)果。

由于銀行卡支付需要返回明確支付結(jié)果,對(duì)于這類渠道只能內(nèi)部設(shè)計(jì)將異步轉(zhuǎn)為同步

?

后臺(tái)支付流程如下:

網(wǎng)關(guān)支付

為什么會(huì)發(fā)生重復(fù)付款?

主要原因其實(shí)跟上次內(nèi)部掉單異常一樣,跟業(yè)務(wù)表設(shè)計(jì)有關(guān)。

上次我們提到,支付系統(tǒng)主要表結(jié)構(gòu)如下:

在這個(gè)表結(jié)構(gòu)下,只要支付訂單未成功,商戶就可以重復(fù)使用其內(nèi)部同一訂單號(hào)調(diào)用支付接口。

假設(shè)這樣一個(gè)場(chǎng)景,用戶在收銀臺(tái)支付時(shí)選擇招行進(jìn)行網(wǎng)銀支付,當(dāng)他點(diǎn)擊支付之后,商戶系統(tǒng)將會(huì)調(diào)用支付公司的網(wǎng)銀接口。

這時(shí)支付系統(tǒng)內(nèi)部將會(huì)創(chuàng)建一筆支付單以及關(guān)聯(lián)的渠道訂單,并且調(diào)用招行系統(tǒng)的接口。

然后用戶的瀏覽器頁(yè)面將會(huì)打開一個(gè)新頁(yè)面,然后跳轉(zhuǎn)到招行網(wǎng)站。

這時(shí)如果此時(shí)用戶再次在收銀臺(tái)點(diǎn)擊支付,將會(huì)再次調(diào)用支付系統(tǒng)接口。這時(shí)候由于支付單已存在,所以僅僅會(huì)再創(chuàng)建一條渠道訂單記錄,并且調(diào)用招行系統(tǒng)的接口。這時(shí)用戶的瀏覽器將會(huì)再次打開一個(gè)招行的網(wǎng)站。

如果用戶在兩個(gè)招行網(wǎng)銀頁(yè)都完成支付,這時(shí)就發(fā)生了重復(fù)付款。

上面這種場(chǎng)景看起來(lái)有點(diǎn)傻,但是真實(shí)用戶操作真的會(huì)發(fā)生。除了這種,博客園上的小伙伴還提到這么下面這種情況:

解決辦法

重復(fù)付款異常的主要的解決辦法有兩種,分為事前與事后。

事前主要的目是盡可能防止用戶重復(fù)付款,主要解決辦法為優(yōu)化付款頁(yè)面,盡可能做好提示。

「第一種優(yōu)化方式,付款頁(yè)面直接跳轉(zhuǎn)到第三方/銀行的網(wǎng)銀頁(yè)面,不要打開新的頁(yè)面去跳轉(zhuǎn)。」

網(wǎng)銀同步跳轉(zhuǎn)

這種方式可以防止用戶誤打開兩個(gè)網(wǎng)銀付款的頁(yè)面,從而導(dǎo)致重復(fù)付款。

但是這里會(huì)有一個(gè)問題,銀行網(wǎng)銀頁(yè)面付款成功之后,用戶如何知道其在商戶側(cè)訂單狀態(tài)也成功了?

其實(shí)很簡(jiǎn)單,現(xiàn)在網(wǎng)銀支付接口,一般都會(huì)有一個(gè)參數(shù) 「return_url:同步跳轉(zhuǎn)地址」 。

來(lái)自支付寶開發(fā)文檔

只要在接口傳入這個(gè)地址,當(dāng)支付成功之后,頁(yè)面最終就會(huì)跳轉(zhuǎn)到這個(gè)傳入的地址,商戶側(cè)就可以在地址顯示訂單是否支付成功。

支付系統(tǒng)異常處理-同步跳轉(zhuǎn)

上面我們提到,用戶有可能會(huì)使用瀏覽器回退功能,跳轉(zhuǎn)到支付頁(yè),從而導(dǎo)致重復(fù)付款。

對(duì)于這種情況,我們可以在其回退支付頁(yè)時(shí),首先向后臺(tái)查詢這筆訂單支付結(jié)果,如果已支付成功,那就直接顯示成功頁(yè)面。

「第二種優(yōu)化,對(duì)于這種重新打開一個(gè)頁(yè)面跳轉(zhuǎn)到銀行網(wǎng)站,我們可以在頁(yè)面加入彈窗提示,詢問用戶是否已支付完成。」

比如上面這種處理方式,當(dāng)用戶點(diǎn)擊確認(rèn)完成充值,可以馬上向后臺(tái)發(fā)起查詢訂單狀態(tài)。

下面來(lái)聊聊事后的解決辦法,「其實(shí)解決辦法很簡(jiǎn)單,發(fā)起內(nèi)部退款,將多余支付的一筆反向退款回去」。

支付系統(tǒng)內(nèi)部可以有個(gè)定時(shí)任務(wù),定時(shí)掃描支付單下有多條成功渠道訂單的記錄,然后選擇將重復(fù)支付渠道訂單發(fā)起退款。

這種方式是支付公司系統(tǒng)內(nèi)部的操作,不需要商戶側(cè)發(fā)起指令。

?

訂單失效異常

異常場(chǎng)景

這種場(chǎng)景一般常見于電商購(gòu)物,秒殺等購(gòu)物場(chǎng)景。當(dāng)用戶下單之后,頁(yè)面將會(huì)開始倒計(jì)時(shí),用戶需要在有效期內(nèi)支付成功。

假設(shè)用戶點(diǎn)擊跳轉(zhuǎn)到支付寶,但是其沒有立刻支付,而是停留了很久,在訂單最后一秒時(shí)間內(nèi)完成了支付,但是這個(gè)時(shí)候訂單早已因?yàn)闀r(shí)間到期而被自動(dòng)取消。

這樣就發(fā)生用戶扣款已經(jīng)成功,但是訂單卻是失敗或關(guān)閉的場(chǎng)景的。

另外還有一種情況,用戶在有效期內(nèi)支付成功,但是因?yàn)榫W(wǎng)絡(luò)、內(nèi)部應(yīng)用等問題,支付結(jié)果的異步通知過(guò)了很久才收到,這時(shí)內(nèi)部訂單早因?yàn)闀r(shí)間到期而被取消。

解決辦法

「第一種解決辦法,上送有效期給支付渠道?!?/strong>

一般支付接口都會(huì)有一個(gè)支付有效期的字段,表明這筆支付最晚可以支付的時(shí)間。如果超時(shí)未支付,這筆支付將會(huì)被關(guān)閉。

來(lái)自支付寶開發(fā)文檔

當(dāng)然一般情況下,如果未上送,這個(gè)字段內(nèi)部一般會(huì)有個(gè)默認(rèn)的有效期,比如 3 天,這個(gè)時(shí)間就比較長(zhǎng)了。

所以當(dāng)調(diào)用支付接口時(shí),可以將訂單剩余有效期傳入支付接口。這樣用戶如果在超時(shí)時(shí)間內(nèi)未完成支付,支付將會(huì)失敗。

「第二種解決辦法,內(nèi)部發(fā)起退款?!?/strong>

這個(gè)解決辦法依然事后托底的解決辦法,對(duì)于支付訂單已關(guān)閉,但是支付卻成功的情況,發(fā)起內(nèi)部退款,將錢退給用戶。

內(nèi)部可以有個(gè)定時(shí)任務(wù),定時(shí)掃描支付訂單已關(guān)閉但是支付卻成功的情況,然后發(fā)起退款指令。

?

最后

最后用思維導(dǎo)圖方式幫大家總結(jié)一下支付系統(tǒng)可能會(huì)碰到的異常。


有道無(wú)術(shù),術(shù)可成;有術(shù)無(wú)道,止于術(shù)

歡迎大家關(guān)注Java之道公眾號(hào)

好文章,我在看??

總結(jié)

以上是生活随笔為你收集整理的一笔订单,但是误付了两笔钱!这种重复付款异常到底该如何解决?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。