アプリ内の月額サブスクリプションを販売する Android アプリを作成しています。深く掘り下げる前に、これをどのように行うべきかについてのこの概要は、ほぼ正しいと思いますか? Google Play Android Developer API を使用しています。
アプリの初回インストール時に、sendBillingRequest() で次を送信します。
- CHECK_BILLING_SUPPORTED。そうでない場合は、わざわざ「購入」UI を作成しないでください。
- RESTORE_TRANSACTIONS。トランザクションがあった場合、ユーザーの購入トークンを保存します。
ユーザーが購入するとき:
- 購入トークンを保存します。
- 購入トークンを含む GET リクエストを Google Play Developer API に送信して、サブスクリプションを確認します。
- サブスクリプションが有効な場合は、サブスクリプションの有効期限と開始日を保存します。購入したデータへのアクセスを提供します。
- サブスクリプションが有効でない場合は、購入トークンを削除してください。購入したデータへのアクセスを提供せず、「未購入」バージョンの UI を描画します。
アプリを起動するたびに、購入トークンが保存されているかどうかを確認します。
購入トークンが存在しない場合:
- 購入したデータへのアクセスを提供せず、「未購入」バージョンの UI を描画します。
購入トークンが存在する場合は、有効期限と開始時刻を確認します。
- (期限切れ) または (開始が 1 か月以上前) の場合
- 購入トークンを含む GET リクエストを Google Play Developer API に送信して、サブスクリプションを確認します。
- 購入が有効な場合は、保存された有効期限と開始日を更新します。購入したデータへのアクセスを提供します。
- 購入が有効でない場合は、保存された購入トークンと有効期限および開始データを削除します。アクセスを提供せず、「未購入」バージョンの UI を描画します。
- そうしないと
- 購入したデータへのアクセスを提供します。