1. 程式人生 > 其它 >第三方支付介面響應超時處理方法【杭州多測師】【杭州多測師_王sir】

第三方支付介面響應超時處理方法【杭州多測師】【杭州多測師_王sir】

問題:呼叫第三方支付介面響應時間超過10秒,導致大量線上訂單因為超時失敗,該介面是實時返回結果的,而且不是一直都慢,是偶爾慢,對於介面超時怎麼處理和測試?
解決方法:呼叫介面時設定超時時間,當介面超過9秒未返回結果,自動將改訂單設定為處理中,然後後由定時任務呼叫查詢介面,這樣就把,一個實時返回結果的介面,當成一個非同步的介面來用了,總比一大堆失敗訂單出現會更加的好

尤其是在分散式中介面響應超時的問題,尤其重要。很多時候,一個請求,會呼叫很多service服務,如果service之間是序列的話,那麼一個service超時,很可能會引起連鎖反應,所以在呼叫別的介面的時候(不管是第三方支付介面,還是分散式介面),都需要加一個超時時間,超過這個時間,就不在等待了,當做失敗,或者處理中,然後再後續處理。

處理方式:
1、第一次請求第三方,出現第三方超時異常。設定重複請求為三次。
2、首先用原先的訂單號,查詢訂單交易結果。
3、交易成功,返回交易成功。
4、交易失敗,返回交易失敗。
5、未存在該交易,則進行重複請求,以此類推三次。
6、超過三次,返回交易失敗
程式碼實現:
1、使用執行緒安全型別:AtomicInteger
2、使用執行緒儲存計數器的值:ThreadLocal