19

iOS でのレシート検証フローを完全に理解するのに問題があります。

これが現在行っていることです(開発中):

applicationDidFinishLaunchingサーバー側で領収書を検証し、applicationWillEnterForeground領収書がない場合、または領収書が無効な場合は、領収書を更新して再検証しようとします。

ここにいくつかの問題/質問があります:

  1. デバイスで利用できるレシートがない場合はどのような場合ですか?

  2. 領収書がない場合は常に領収書更新リクエストを発行する必要がありますか?

  3. 起動時にこの警告ボックスが表示されることがあるのはなぜですか? これは領収書更新リクエストに表示されることを理解していますか?

サインインが必要ですか?

  1. 領収書の確認はいつ行われるべきですか? 現在、購入を確認するために購入が行われるたびに行っていますが、これは正しい使用法ですか?
4

4 に答える 4

13
  1. 本番環境では、レシートは常にデバイスで利用できます。最初のインストール後のテストではありません。したがって、正しいテストを行いたい場合は、テスト環境でそのユーザーの購入が存在しない場合でも、購入を復元する必要があります。何故ですか?アプリストアからダウンロードしたアプリには、無料であっても必ずレシートが付いてきます。
  2. 適用するビジネス ロジックによって異なります。アプリを起動するたびにサーバーに対してレシートを検証する場合は、もちろんレシートが必要です。存在しない場合 (ただし、本番環境では常に)、または有効でない場合は、更新または復元を要求できますが、私が覚えている限りでは、最初にユーザーにそれを行いたいかどうかを常に確認する必要があります (拒否理由)。復元と更新は同じものではありません。
  3. これは通常、購入/復元/更新で表示されます。しかし、アプリがクラッシュしたか、何らかの理由でリクエストが終了する前にデバッグを中断したために、アカウントに保留中のリクエストがいくつかある場合は、その多くに飽きてしまいます。プログラムでそれらをフラッシュする方法はありません。停止するまでログインするだけです。もちろん、有効なテストにはなりません。
  4. それはあなた次第であり、購入の種類についてです。自動更新可能なサブスクリプションの場合は、サーバーに対して領収書を検証し、「終了日」をクライアントに保存して、日付の有効期限が切れた後に別のチェックを行うことができます。領収書にはすべての履歴値も含まれているため、領収書は非常に大きくなる可能性があることに注意してください。
于 2015-12-08T16:53:23.443 に答える
0

1.購入/復元は行われませんでした。
2. いいえ

于 2015-12-08T16:26:54.807 に答える