用户礼品卡注册

通过礼品卡注册(登录)功能,用户可以搜索 礼品卡,并将其添加到 Google 钱包。 系统会将用户定向到您的适合移动设备浏览的网站,以完成 之后,用户就可以将自己的银行卡添加到 Google 钱包了。

本指南概述了所需的实现步骤。 为您的礼品卡计划启用此功能。

概览

首先,请确保您之前已设置好项目,并且有权访问 Google Wallet API。

您必须按照以下四个步骤来实现登录功能 礼品卡计划:

  1. 在 Google 钱包中设置测试类以测试登录流程。
  2. 开发支持 Google 钱包SharedDataType的登录页面。
  3. 在用户登录后将礼品卡推回 Google 钱包。
  4. 请求验证和激活。

在 Google 钱包中设置测试类

确定登录网址,即您的计划徽标。然后, 使用 discoverableProgram 嵌套字段, giftcardclass,用于设置 适当的值

discoverableProgram 中设置值,以创建您的 支持登录的礼品卡计划。为确保测试人员可以看到此信息,请确认 测试人员可以访问您的 Google Pay 和钱包控制台。如需详细了解如何将您的 有关 Google Pay 和钱包控制台的访问权限,请参阅 了解“用户”页面

为了在开发期间完成实现功能的验证 流程,请通过 Google Pay 和钱包控制台中的“联系支持”微件与我们联系。在 在控制台中选择 Google Wallet API,然后在以下位置选择礼品卡登录: 子主题。

开发使用 Google 钱包用户数据的登录页面

当用户选择添加礼品卡时, 他们就会被定向到您网站上的专门定制页面 登录流程。

您必须提供可供用户登录的登录网址 添加到现有账号中。

您的登录页面必须满足以下要求:

  • 提供适合移动设备的用户体验。
  • 允许用户在一个页面内完成登录。
  • 使用 HTTPS 加密与有效证书,确保用户数据 安全传输的内容
  • 确保登录页面的正常运行时间至少达到 99.9%。

在显示登录页面时,Google 钱包会创建 Android WebView 和 POST 请求会发送到您提供的 网址。用户数据在参数 SharedDataType 中提供 它包含在 POST 请求之中,使用 <ph type="x-smartling-placeholder"></ph> application/x-www-form-urlencoded 内容类型和 UTF-8 编码。SharedDataType 的值 参数是一个 Base64 编码的 JSON 对象。

立即将礼品卡退回 Google 钱包

通过身份验证(登录)之后,您的网页 应立即将用户的礼品卡推回 Google 电子钱包。

您可以将礼品卡重定向至 Google 钱包, 跟随路径

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

网址的安全长度为 2000 个字符。您的链接应 也不得超过此限制编码到 JWT 中的对象要小,只包含 用户特有的数据尽量将大部分数据放在对象的类中, 然后再创建 JWT。对于超出长度限制的较大对象,请考虑 首先在 Cloud Shell 中 Google Wallet API 且仅发送 JWT 中的对象 ID。

典型的通信流程

完成登录的用户的通信流程如 以下图片。“您的服务器”之间的所有操作均由您负责实施

登录流程

请求验证和激活

完成开发工作并测试登录流程后,请提交 通过 与 Google Pay 和钱包控制台支持团队联系 微件。

在对您的实现进行全面审核,确认 与 Google 钱包应用搭配使用,礼品卡登录功能将 。这样,任何用户都可以看到 并充分利用这项功能

为了确保最佳用户体验,系统会定期检查您的登录 开展实施工作,确保始终符合功能要求。 如果出现差异并且出现登录功能,您会收到通知 在问题得到解决之前可能会被停用。

常见问题解答

  • 我的礼品卡计划中使用的图片是否有任何要求?
    • 是的,您的图片应托管在 HTTPS 个位置 否则这些交易不会显示在 Google 钱包中。
  • 是否有任何工具可以简化 JWT 的实现和调试?
    • 是,诸如 www.jwt.io 并在开发过程中调试令牌,让您可以验证 提交的内容。请注意,Google 没有联属关系,也不 特别推荐此类第三方。
  • 如何正确处理 Base64 编码的 SharedDataType 数据?
    • 确保您在整个流程中使用的是 UTF-8 编码。JSON 字符串 先采用 UTF-8 编码,然后使用 <ph type="x-smartling-placeholder"></ph> android.util.Base64(包含 NO_WRAP 和 网址_SAFE 选项)。这对应于 RFC 3548 第 4 节