2017-07-25 178 views
0

我目前正在開發支付系統,該支付系統執行支付並寫入該項目是在雲託管數據庫Azure中購買的。作爲交易處理多個命令

它是如何工作目前是:

  1. 交易與第三方支付系統
  2. 如果成功,在數據庫中的新訂閱行添加用戶
  3. 的交易記錄和其他有關的東西被寫入數據庫

然而,在萬一:

  1. 交易是成功(HTTP調用支付網關返回成功)
  2. 出於某種原因,插入數據庫失敗

我將結束與已繳付了用戶對項目而不考慮實際認購(因爲該行不會在我們的數據庫)

這兩個調用不是數據庫相關的(一個是,另一個是簡單的異步http請求),所以我不能把它們當作交易(因爲我不能真正回滾)。

所以我的問題是更有經驗的如何處理這種情況?

回答

0

爲了回答,我已經使用補償事務模式實現了這一點。

按預期工作