2017-07-25 15 views
0

現在、支払いを実行し、そのアイテムをクラウドホストデータベースAzureで購入する支払いシステムを開発中です。それが現在どのように動作するトランザクションとして複数のコマンドを処理する

は次のとおりです。サードパーティの決済システムとの

  1. トランザクションは成功は、データベース内に新しいサブスクリプションの行は、ユーザー
  2. 取引履歴及びその他の関連するもののために書かれている追加され
  3. 場合万一データベース

しかし、その:

  1. トランザクション何らかの理由で成功(HTTP決済ゲートウェイに呼び出して成功を返す)
  2. で、データベースに挿入が

を失敗した私はのための実際のサブスクリプションなしのアイテムのために支払った利用者となってしまいます

これらの2つの呼び出しは、データベース関連ではありません(もう1つは単純な非同期http要求です)ので、トランザクションとして扱うことはできません(本当にロールバックできないため)。

私の質問は、このような状況を処理するためのより経験豊かな方ですか?

答えて

0

回答するには、補償パターンを使用してこれを実装しました。

期待通りに動作します

関連する問題