Google Pay API for Passes を使用すると、Google Pay アプリ内でポイントカード、ギフトカード、クーポン、イベント チケット、搭乗券、乗車券を追加し、管理できます。まず、プロジェクトを登録し、そのプロジェクトを Google Pay API for Passes Merchant Center に関連付けてから、お使いのウェブサービスを OAuth 2.0 用に設定します。
1. 登録
Google Pay API for Passes へのアクセス権を申請して取得します。フォームを送信すると、サポートチームから連絡があり、ユースケースを検証して Google Pay API for Passes アカウントを作成します。
2. アプリケーションを登録する
Google API にアクセスする、すべてのアプリケーションを API Console で登録する必要があります。この登録プロセスを行うと、お使いのアプリケーションと Google のみが参照できる一連の値(クライアント ID、メールアドレス、秘密鍵)が作成されます。Google Pay API for Passes アカウントの作成時に、次の手順を行うこともできます。アプリケーションを登録するには、次のようにします。
- Google Pay API for Passes へのアクセス権を申請して取得します。すでに取得している場合、このステップはスキップできます。
- API Console にアクセスします。
- [プロジェクトを作成] ボタンをクリックするか、ページ上部にあるプルダウンから [プロジェクトを作成] を選択します。[新しいプロジェクト] ページが表示されます。
- プロジェクト名を入力します。
- [作成] をクリックします。構成が完了すると、右上隅に通知が表示されます。この通知をクリックしてプロジェクトのホームページに移動します。
- [API の概要に移動] をクリックし、[API とサービスを有効化] をクリックします。
- Google Pay Passes API を検索し、[有効にする] をクリックします。
- 左側のメニューで [認証情報] をクリックします。
- [認証情報を作成] ボタンをクリックし、[サービス アカウント キー] を選択します。
- このページで、サービス アカウントキーを作成します。必要に応じて、サービス アカウントも作成します。このサービス アカウントに追加の役割は必要ありません。キーのタイプとして [json] を選択し、[作成] をクリックします。
- 新しいサービス アカウントがアカウント リストに追加され、秘密鍵がローカル ファイル システムにダウンロードされます。これはこの鍵の唯一のコピーであるため、この鍵ファイルは安全な場所に保管する必要があります。この鍵は後で使用します。
- 鍵のサービス アカウントのメールをコピーします。これは、[認証情報] タブの [サービス アカウントの管理] をクリックすると表示されます。このアドレスは後で使用します。
警告: 秘密鍵は、開発環境と本番環境両方のためにご自身で安全に保管、管理する必要があります。Google で保管するのは、公開鍵のコピーのみです。サービス アカウントの秘密鍵を管理する方法については、こちらをご覧ください。
3. お使いのサービス アカウントを Google Pay API for Passes アカウントに関連付ける
Google Pay API for Passes Merchant Center は、お使いのアカウントと、関連するすべてのクラスとオブジェクトを管理するために使用できるウェブサイトです。Google Pay API for Passes アカウントがサポートチームによって作成されたら、次の手順に従ってサービス アカウントのメールを新しいアカウントに関連付けます。
- Google Pay API for Passes Merchant Center にアクセスします。
- リストから自分のアカウントを選択します。[アカウント情報] ページが表示されます。
- [共有] をクリックします。共有設定が表示されます。
- アプリケーションを登録するセクションでコピーした鍵のサービス アカウントのメール(末尾が
@<your_domain>.iam.gserviceaccount.com
のもの)を、Invite people
フィールドに貼り付けます。 - [権限] プルダウンが [編集者] に設定されていることを確認して、[送信] をクリックします。これで、お使いのサービス アカウントが Google Pay API for Passes アカウントに関連付けられました。API に対して REST 呼び出しを発行できます。
4. サーバー間アプリケーションに OAuth 2.0 を使用する
Google OAuth 2.0 認証サーバーは、ウェブ アプリケーションと Google Cloud Storage 間など、サーバー間のインタラクションをサポートしています。リクエスト元のアプリケーションは、エンドユーザーによる介入なしに、自身の ID を証明して API へのアクセスを取得する必要があります。
API リクエストを承認するには、アクセス トークンを取得する必要があります。プロセスを簡素化するために、クライアント ライブラリを使用することをおすすめします。
- OAuth 2.0 認証にライブラリを使用している場合は、ライブラリを使用してサービス アカウントの認証情報を作成するに進みます。
- すべての OAuth 2.0 認証コードを手動で作成する場合は、手動でアクセス トークンを取得するに進みます。
ライブラリを使用してサービス アカウントの認証情報を作成する
次のタブに、さまざまな言語でサービス アカウントの認証情報を作成するためのコード例を示します。
Java
GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport) .setJsonFactory(jsonFactory) .setServiceAccountId("ServiceAccountEmail@developer.gserviceaccount.com") .setServiceAccountScopes("https://www.googleapis.com/auth/wallet_object.issuer") .setServiceAccountPrivateKey(new File("/example/path/to/privatekey.json")) .build();
PHP
$client = new Google_Client(); $client->setApplicationName('Wallet Objects App'); $client->setScopes(array('https://www.googleapis.com/auth/wallet_object.issuer')); $client->setAuthConfigFile('/example/path/to/privatekey.json');
Python
file_path = '/example/path/to/privatekey.json' credentials = ServiceAccountCredentials.from_json_keyfile_name( file_path, 'https://www.googleapis.com/auth/wallet_object.issuer') http = httplib2.Http() http = credentials.authorize(http)
作成された認証情報は、クラスの挿入など、REST API コマンドを実行するときに使用します。
手動でアクセス トークンを取得する
アクセス トークンを手動で取得する場合は、サーバー間アプリケーションに OAuth 2.0 を使用するをご覧ください。JSON Web Token(JWT)を作成し、秘密鍵を使用して登録してから、適切な形式でアクセス トークン リクエストを作成する必要があります。その後、アプリケーションから Google OAuth 2.0 認証サーバーにトークン リクエストが送信され、アクセス トークンが返されます。アプリケーションは、アクセス トークンを受け取らないと、API にアクセスできません。アクセス トークンが期限切れになったら、アプリケーションでこのプロセスを繰り返す必要があります。
- JWT クレームセットの
iss
フィールドでは、アプリケーションを登録するセクションで Google API Console から生成したサービス アカウントのメールアドレスを使用します。 - JWT クレームセットの
scope
フィールドは、アプリケーションがリクエストする権限のスペース区切りリストです。 - 本番環境アプリケーションの有効なスコープは
https://www.googleapis.com/auth/wallet_object.issuer
です。
以上の手順を完了したら、Google Pay にパスを保存するで、お客様がポイントカード、ギフトカード、クーポン、イベント チケット、搭乗券、乗車券をウェブサイトから Google Pay に簡単に保存する方法をご覧ください。