仮想コイン(消耗品)を購入するために、IAPを使用してiOSアプリを作成しました。バックエンドは Ruby on Rails です。今のところ、ソリューション全体についていくつかの懸念があります。
私の現在の IAP プロセスは次のように説明されています。
- ステップ 1 - iOS クライアントがバックエンドにリクエストを送信し、製品 ID を取得します。
- ステップ 2 - クライアントは、ステップ 1 の ID を使用して Store Kit から製品リストを取得します。
- ステップ 3 - ユーザーが [購入] をクリックすると、クライアントが Store Kit に支払い要求を送信します
- ステップ 4 - トランザクションが終了すると、クライアントはレシート トークンをバックエンドに送信します
- ステップ 5 - サーバーは最初に領収書を検証し、それが有効な検証であることを確認します
- ステップ 6 - サーバーは App Store を呼び出してレシートを確認し、交換を処理します (DB のリチャージ アカウント)
- STEP 7 - クライアントは応答を受け取り、口座残高を表示します
私は以前に電子商取引/支払いソリューションに取り組んでいました.IAPは逆ですが、通常、支払いゲートウェイは検証のために領収書をサーバー間で送信します. そして、すべてのトランザクションが安定して保守可能であることを確認するために、メッセージ キューのようなソリューションを常に用意しています。
私の質問は次のとおりです。
IAP の受領を確認するためのベスト プラクティスは何ですか? サーバーからの検証の中断を回避するには? (例: ユーザーはクライアントでお金を使ってトランザクションを終了しますが、サーバーで領収書を確認するときに失敗します。IAP 復元トランザクションはサポートされていません。)
Apple IAP は、おそらく完璧なクライアント ソリューションです。特に私の場合、ユーザーの支払い後、彼はすぐにコインを受け取りたいと思っていますが、トランザクションが処理中であり、アカウントがすぐに履行されると伝えた場合ではありません。モバイル デバイスでレスポンシブ UX を実現することが優先されます。サーバーでまだメッセージキューを使用していますか?
御時間ありがとうございます。