链接和网站按钮

Google Pay API for Passes 可帮助您在 Google Pay 应用中添加和管理礼品卡、会员卡和优惠。请先注册您的项目,然后将其连接到 Google Pay API for Passes Merchant Center,最后再将您的网络服务设置为 OAuth 2.0。

1. 注册应用

所有访问 Google API 的应用均须通过 API 控制台进行注册。注册后,您将获得仅对 Google 和您的应用公开的一组值(客户端 ID、电子邮件地址和私钥)。要注册您的应用,请按以下步骤操作:

  1. 注册 Google Pay API for Passses,获取访问权限。如果您已经注册,则可跳过此步骤。
  2. 访问 API 控制台
  3. 点击新建项目按钮,或从页面顶部的下拉菜单中选择新建项目。系统会显示“新建项目”页面。
  4. 输入项目名称。
  5. 点击创建。配置完成后,右上角会显示一则通知。点击此通知,进入项目主页。
  6. 点击左侧菜单中的 API 和服务,然后在下拉列表中选择凭据
  7. 点击创建凭据按钮,然后选择服务帐号密钥
  8. 在页面上创建您的服务帐号密钥,您可能还需要在其中创建服务帐号。选择 json 作为密钥类型,然后点击创建
  9. 新的服务帐号随即添加至您的帐号列表,私钥亦下载到您的本地文件系统。这是此密钥的唯一副本,请您妥善保存此密钥文件。稍后您将使用此密钥。
  10. 复制密钥的服务帐号电子邮件地址,通过点击“凭据”标签中的管理服务帐号,找到该电子邮件地址。稍后您将使用此电子邮件地址。

警告:无论是在开发环境,还是生产环境,您都必须妥善存储和管理您的私钥。Google 仅存储公钥的副本。

2. 将您的服务帐号与 Google Pay API for Passses 帐号进行绑定

您的 Google Pay API for Passes 帐号应由您的 Google 联系人为您创建。Google Pay API for Passes Merchant Center 是一个网站,可用于管理您的帐号及所有关联的类和对象。请按照以下步骤将您的服务帐号绑定到 Google Pay API for Passes Merchant Center:

  1. 访问 Google Pay API for Passes Merchant Center
  2. 点击左侧导航栏中的帐号管理 (Account Management)。系统会显示“帐号信息”(Account Info) 页面。
  3. 注意:请记下您的发卡机构 ID(也称商家 ID)。稍后您将在调用 API 时使用该 ID。

  4. 点击共享 (Share)。系统会显示“共享”(Share) 设置。
  5. 复制在注册应用部分中保存的密钥的服务帐号电子邮件地址(以 @<your_domain>.iam.gserviceaccount.com 结尾),并将其粘贴到 Invite people 字段中。
  6. 确保将权限下拉列表设置为可编辑 (can edit),然后点击发送 (Send)。您的服务帐号现已与您的 Google Pay API for Passses 帐号绑定。您现在可以对 API 进行 REST 调用。

3. 将 OAuth 2.0 用于服务器到服务器应用

Google OAuth 2.0 授权服务器支持服务器到服务器的互动,例如网络应用和 Google Cloud Storage 之间的服务器到服务器互动。发出请求的应用需在无任何最终用户参与的情况下证明其具备访问 API 的身份。

您需要获取访问令牌以授权您的 API 请求。我们强烈建议您使用客户端库简化此流程。

使用库创建服务帐号凭据

以下标签显示了使用不同语言创建服务帐号凭据的示例代码:

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 网络令牌 (JWT),并使用私钥对其签名,然后以恰当的格式构建访问令牌请求。之后,您的应用会将该令牌请求发送到 Google OAuth 2.0 授权服务器,并获得返回的访问令牌。您的应用只有在收到访问令牌后才能访问 API。若访问令牌过期,您的应用必须重复此过程。

  • JWT 声明集中的 iss 字段使用您从 Google API 控制台生成的服务帐号电子邮件地址(请参阅注册应用部分)。
  • JWT 声明集中的 scope 字段列出该应用请求的权限并以空格分隔。
  • 商品适用范围的有效范围是 https://www.googleapis.com/auth/wallet_object.issuer

完成上述步骤后,请参阅保存到 Google Pay,了解客户如何轻松地将您网站中的会员卡、礼品卡、优惠、活动门票和登机牌保存到 Google Pay。