微信 支付宝 同时支付一个订单的解决方案
舉個例子:
我們的應用同時的接入了支付寶和微信。有 2 種 或者更多的三方支付方式。這時候有一個很明顯的問題, 一個訂單 如果同時 使用微信支付 和 支付寶支付 就會支付兩次( 同時的 意思是指,支付寶支付以后,在異步通知沒有回來的時候 ,客戶端有使用微信支付了一次 )。
這種情況我們能怎么辦呢?
1 正常支付毀掉會在幾秒內回來,所以 如果在一個訂單 有使用支付寶支付欲望的時候( 獲取簽名的時候 ),鎖定訂單 10 秒鐘,然這個10 秒鐘內不能使用別的凡是支付。
缺點: 用戶在企圖換另一種支付方式的時候回等待10秒。
2 我們想,我們的用戶都是正常人,正常情況不會 在支付寶 通知沒有回來的情況下,在使用微信支付一次。但是我們不能避免用戶這么做,我們可以吧這個種極端的情況記錄清楚,然后給用戶退款。
實現:如果我們支付通知回來以后,直接去更新訂單狀態,那么 支付寶的通知來了以后吧訂單改成 支付完成。這時候 微信的 通知來了。我們檢查訂單狀態是完成,正常我們會直接返回完成,不做任何處理( 因為只支付一次,通知也可能來多次 ,比如以前的 同步通知和異步通知 )
這時候應該怎么辦呢? 我們應該 在訂單之外再記錄 一個 支付記錄。 上面的 只會回來以后 我們應該寫一條支付成功的支付記錄。 并且記做業務處理狀態是未完成,然后去處理 訂單狀態,處理以后吧支付記錄改成成功,當微信的通知來的時候,我們在寫一條支付記錄,這條記錄是未完成,然后去處理訂單,發現訂單已經支付完成,那么這個 條支付記錄就保留未完成的狀態,并且這種記錄應該 給用戶 原路退回。
總結
以上是生活随笔為你收集整理的微信 支付宝 同时支付一个订单的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 信用卡恶意透支后还款会判刑吗?可能有两种
- 下一篇: html书签展示(带搜索)