消耗品をユーザーに返す前に、とりわけ (API 呼び出しを介して) サードパーティから何かを購入する必要があるサーバーがあります。明らかに、事前にAppleのレシートをチェックします。
サーバー側のアプリ内障害に対処する最善の方法は何ですか?たとえば、サードパーティのサービスが失敗した場合はどうすればよいですか? この時点で、ユーザーの経験は、支払ったが消耗品を受け取っていないというものであり、再試行するとより多くのお金を費やすことになります.
これまでのところ、私は思いついた:
デバイス上
- inapp が完了したら、その productId のレシートを「unclaimed」として保存します
- いつものようにサーバーに連絡してください。
- 成功した場合は、請求されていない領収書/productId をクリアします
- エラーが発生した場合、次にユーザーがアプリ内で同じことを試みると、実際の購入部分をスキップして、前のレシートを使用して 2. に直接進みます。
次に、サーバーで
- Apple で領収書を確認する
- そのレシートの消耗品をユーザーにまだ提供していないことを確認します (レシートの再利用を防ぎます)。
- サードパーティに電話をかける
- 成功すると消耗品を返します。
- 失敗した場合は、エラーを返します (この時点で、クライアントは領収書を請求されていないものとして保持し、再試行時に再送信します)。
前もって感謝します!