Androidアプリの(自動更新可能な)サブスクリプションを実装するにはどうすればよいですか。
ドキュメントを読みました
私が理解している限り、プロセスは次のとおりです。
- ユーザーは、アプリでそのようなサブスクリプションにサブスクライブします。これにより、購入トークンが生成されます。
- アプリは、このトークンを、このユーザーを識別するための何かとともにサーバーに送信します
- サーバーはこの購入トークンをこのユーザーと一緒に保存し、サブスクリプションを有効としてマークします
- サーバーは、cronjobなどを使用してhttp-apiを介して定期的に(通常は1日1回)この購入トークンを検証します
- サブスクリプションが有効でなくなった場合、サーバー側でサブスクリプションは無効としてマークされます。
- アプリがサブスクリプションを必要とするリソースに対してサーバーにリクエストを送信する場合、クライアントはこのユーザーID文字列をリクエストと一緒に送信します。次に、このユーザーのサブスクリプションがまだ有効としてマークされているかどうかをデータベースでチェックインします。
私の質問は、このユーザーをどのように特定する必要があるかということです。アプリとサーバー間で共有できるシンプルなユーザーIDはありますか?それとも別のものを使うべきですか?ここでのベストプラクティスは何ですか?
iOSですでに同様のサブスクリプションを実行し、デバイスのuuidを使用してユーザーを識別しました(少なくともuuidを使用できる限り)。
以下の回答から、一意のIDを生成する必要があります。これは、デバイスごと(またはアプリのインストールごと)に一意になります。ただし、ユーザーがデバイスを変更したり、アプリケーションを再インストールしたりすると、このIDは同じではなくなります。したがって、このユースケースでのプロセスがどのようになっているのかわかりません。私はこのようなことを考えました:
- ユーザーは、2番目のデバイスで同じGooglePlayアカウントでログインしています。
- アプリが起動すると(またはアクティブになると)、ユーザーのサブスクリプションを取得します
- 次に、サブスクリプションからこの購入トークンを受け取り、ユーザーが新しいサブスクリプションを作成したかのように、新しい一意のIDとともにバックエンドサーバーに送信します。
これは正しいプロセスでしょうか?そして、購入トークンは最初のデバイスと同じままですか?
わかりました。ユーザーの識別に関する私の質問に答えました。提供されたリンクから十分な情報が得られます。SOの新しいスレッドに質問がある場合は、さらに質問します。