ユーザー ポイント プログラムへの登録

ポイント プログラムの登録とログイン機能により、ユーザーはポイント プログラムを検索し、Google ウォレットから参加するか自分のアカウントにログインできます。ユーザーはモバイル向けウェブサイトに案内され、プロセスを完了すると、カードを Google ウォレットに簡単に追加できます。

このガイドでは、この機能に対してポイント プログラムを有効にするために必要な実装手順の概要を説明します。

概要

開始するには、プロジェクトを以前に設定しており、Google Wallet API にアクセスできることを確認します。

次の 4 つのステップに従って、ポイント プログラムの登録とログイン機能を実装する必要があります。

  1. Google ウォレットでテスト環境を設定して、登録フローやログインフローをテストします。
  2. Google ウォレットのユーザーデータを利用する登録ページ / ログインページを開発します。
  3. 登録 / ログイン後の Google ウォレットへのポイントカードのプッシュバックを実装します。
  4. 確認と有効化をリクエストします。

Google ウォレットでテスト環境を設定する

登録 URL とログイン URL、プログラムロゴ、必要なユーザー フィールドを決定します。次に、loyaltyclassdiscoverableProgram ネスト フィールドを使用して、適切な値を設定します。

discoverableProgram に値を設定して、登録とログインに対応したポイント プログラムのドラフト版を作成します。テスターがこれを表示するには、テスターが Google Pay and Wallet Console にアクセスできる必要があります。Google Pay and Wallet Console へのアクセスを他のユーザーと共有する方法の詳細については、ユーザーページの詳細をご覧ください。

開発プロセス中に実装機能の検証を完了するには、Google Pay and Wallet Console のお問い合わせウィジェットを使用して Google にご連絡ください。コンソールのトピックで [Google Wallet API] を選択し、サブトピックで [ポイント プログラムへのログイン / 登録] を選択してください。

Google ウォレットのユーザーデータを利用する登録ページとログインページを開発する

ユーザーがポイント プログラムにログインまたは登録することを選択すると、ユーザーは登録またはログインのプロセスを完了するために、ウェブサイト上のユーザーに合わせたページに案内されます。ユーザーが登録を選択した場合、Google ウォレットはユーザーデータの共有を承認するようユーザーにリクエストします。

ユーザーがこれらの操作を完了できるように、次の 2 つのページのいずれかまたは両方を用意する必要があります。

  1. ユーザーが既存のアカウントにログインできるログイン URL。
  2. ユーザーが新しいアカウントを作成できる登録 URL。

ログインページと登録ページは、次の要件を満たしている必要があります。

  • モバイル向けのユーザー エクスペリエンスを提供します。
  • 登録プロセスでの必須フィールドの数を最小限に抑えます。
  • ユーザーがログインまたは登録を 1 つのページ内で完了できるようにします。
  • HTTPS 暗号化を有効な証明書とともに使用して、ユーザーデータが安全に送信されるようにします。
  • ログインページと登録ページの稼働時間を 99.9% 以上にします。

上記の要件に加え、ユーザーがフォームに記入したり利用規約への同意のためにページを開いておいたりしなくても、ポイント プログラムに登録できるようにすることをおすすめします。

  • 提供されるユーザーデータを利用することで、アカウントを作成してポイントカードをすぐにプッシュバックできます。
  • その後、ワンタイム パスワード、またはパスワードとオプションのアカウント詳細を構成するためのリンクをユーザーにメールで送信できます。
  • これにより、ユーザーが登録プロセスを放棄する可能性が減ります。ステップが増えると、離脱の増加につながります。

ログインページまたは登録ページを表示するときに、Google ウォレットは Android WebView を作成し、指定された URL に対して POST リクエストが行われます。ユーザーデータはパラメータ userProfile で提供されます。これは application/x-www-form-urlencoded コンテンツ タイプと UTF-8 エンコードを使用した POST リクエストに含まれています。userProfile パラメータの値は、Base64 でエンコードされた JSON オブジェクトです。

ユーザーが選択した操作と、ユーザーにリクエストするために指定されているフィールドに応じて、JSON オブジェクトには次のフィールドが含まれます。

フィールド 登録 ログイン
email
firstName  
lastName  
addressLine(1~3)  
city  
state  
zipcode  
country  
phone  

userProfile に含まれる JSON オブジェクトのデコードされたサンプルについては、以下をご覧ください。

リソース

{
  "firstName": "Jane",
  "lastName": "Doe",
  "addressLine1": "1600 Amphitheatre Pkwy",
  "addressLine2": "Apt 123",
  "addressLine3": "Attn:Jane",
  "city": "Mountain View",
  "state": "CA",
  "zipcode": "94043",
  "country": "US",
  "email": "jane.doe@example.com",
  "phone": "555-555-5555"
}

Google ウォレットへのポイントカードの即時プッシュバックを実装する

認証(ログイン)またはアカウント作成(登録)後、ページはユーザーのポイントカードを Google ウォレットにすぐにプッシュバックする必要があります。

ポイントカードを Google ウォレットにプッシュバックするには、以下の構造に従ったリンクにリダイレクトします。

https://pay.google.com/gp/v/save/{jwt_generated}

URL に安全に使用できる長さは 2,000 文字です。リンクがこの限度を超えないようにしてください。JWT でエンコードされるオブジェクトは小さくし、ユーザー固有のデータのみが含まれるようにします。JWT を作成する前に、できる限りのデータをオブジェクトのクラスに保存してください。制限を超えてしまう大きなオブジェクトについては、Google Wallet API でオブジェクトを作成してから、オブジェクト ID のみを JWT で送信することを検討してください。

典型的な通信フロー

ユーザーが登録またはログインを完了する通信フローを次の図に示します。「Your Server」間のすべての操作を実装する必要があります。

登録とログインのフロー

確認と有効化をリクエストする

開発作業を完了し、登録フローとログインフローをテストしたら、Google Pay and Wallet Console のサポート問い合わせウィジェットからリクエストを送信します。

Google ウォレット アプリとの組み合わせで正しい機能を確認する実装の完全なレビューの後に、このポイント プログラムの登録 / ログイン機能が一般公開されます。これにより、どのユーザーもプログラムを参照して、この機能を使用できるようになります。

最適なユーザー エクスペリエンスのために、登録 / ログインの実装のチェックが繰り返し行われ、常に機能要件を満たしているようにします。相違がある場合には通知され、問題が解決されるまでログイン / 登録機能が無効になる可能性があります。

よくある質問

  • ポイント プログラムで使用する画像に要件はありますか?
    • はい。画像は HTTPS の場所でホストされている必要があります。そうしないと、Google ウォレットでは表示されません。
  • JWT の実装とデバッグが簡単になるツールはありますか?
    • はい。www.jwt.io などのプラットフォームでは、開発プロセス中にトークンをデコードおよびデバッグできるため、送信するコンテンツを確認できます。ただし、Google との提携関係はなく、そのようなサードパーティを特におすすめするわけではありません。
  • Base64 でエンコードされた userProfile データを正しく処理するにはどうすればよいですか?
    • プロセス全体で UTF-8 エンコードを使用してください。JSON 文字列は最初に UTF-8 でエンコードされ、その後 android.util.Base64 を使用してエンコードされます(NO_WRAP と URL_SAFE オプションを使用)。これは RFC 3548 セクション 4 に対応しています。