借助 Google Pay API for Passes,您可以在 Google Pay 应用中添加和管理会员卡、礼品卡、优惠、活动门票、登机牌和公交卡。请先注册您的项目,然后将其连接到 Google Pay API for Passes Merchant Center,最后针对 OAuth 2.0 设置您的 Web 服务。
所有访问 Google API 的应用均须通过 API 控制台进行注册。注册后,您将获得仅对 Google 和您的应用公开的一组值(客户端 ID、电子邮件地址和私钥)。要注册您的应用,请按以下步骤操作:
警告:无论是在开发环境,还是生产环境,您都必须妥善存储和管理您的私钥。Google 仅存储公钥的副本。 如需详细了解如何管理服务帐号私钥,请点击此处。
您的 Google Pay API for Passes 帐号应由您的 Google 联系人为您创建。Google Pay API for Passes Merchant Center 是一个网站,可用于管理您的帐号及所有关联的类和对象。请按照以下步骤将您的服务帐号绑定到 Google Pay API for Passes Merchant Center:
@<your_domain>.iam.gserviceaccount.com
结尾),并将其粘贴到 Invite people
字段中。Google OAuth 2.0 授权服务器支持服务器到服务器的互动,例如网络应用和 Google Cloud Storage 之间的服务器到服务器互动。发出请求的应用需在无任何最终用户参与的情况下证明其具备访问 API 的身份。
您需要获取访问令牌以授权您的 API 请求。我们强烈建议您使用客户端库简化此流程。
以下标签显示了使用不同语言创建服务帐号凭据的示例代码:
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();
$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');
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。若访问令牌过期,您的应用必须重复此过程。
iss
字段需使用服务帐号电子邮件地址,该地址在 Google API 控制台的注册应用部分中生成。scope
字段列出该应用请求的权限并以空格分隔。 https://www.googleapis.com/auth/wallet_object.issuer
。