关联用户流程

概览

关联流程的目的是建立一个长期令牌(也称为不透明标识符),付款集成商(在我们的系统中设置付款方式的公司)和 Google 均同意通过该令牌代表 Google 用户帐号与集成商用户帐号之间的关联。这种长期有效的令牌称为 Google 付款令牌 (GPT)。付款方式是用于在 Google 的各种生态系统和购物平台中为服务和商品付款的一种方式。Google 客户可能拥有多种付款方式。

该流程的运作方式

  1. Google 会协商一个令牌,以表示 Google 客户与集成商用户帐号之间的关联。
  2. Google 会收集必要的首次设置信息来创建和建立 GPT

必须先通过身份验证流程确定身份证明和身份验证。身份验证流程的输出将传递给 associateAccount 方法。然后,关联流程会将 Google 用户帐号与 Google 付款方式相关联。这样就可以设置付款方式,将其用于付款。

以下图表详细说明了关联流程:

关联流程图

关联流程图

下面列出了这些对象及其所代表的含义:

  • 用户:希望向其 Google 帐号添加付款方式的人。
  • Google 界面:客户用来设置付款方式的 Google 界面。
  • 付款集成商界面:客户针对该帐号有权访问的集成商界面(Web 或 Android)。
  • Google 服务器:Google 的后端服务器,负责执行身份验证检查并将用户的集成商帐号与 GPT(Google 付款令牌)相关联。
  • 付款集成商服务器:用户拥有帐号的集成商的后端服务器。

这是一种关联流程,在此流程中,Google 令牌将用户的 Google 帐号与其集成商帐号相关联。此流程的运作方式如下。

  1. 用户在 Google 界面(例如网站或应用界面)中启动该流程。
  2. Google 界面会向 Google 服务器发送消息,以便为其提供身份验证请求(请求身份验证数据)。
  3. Google 服务器将身份验证请求 (authenticationRequest) 发送回 Google 界面。
  4. Google 界面可将用户连接到付款集成商界面 (authenticationRequest)。
  5. 系统会提示用户提供身份和凭据。
  6. 付款集成商界面将响应发送到付款集成商服务器。
  7. 付款集成商服务器会对响应进行身份验证,并将身份验证响应 (authenticationResponse) 发送到付款集成商界面。
  8. 此身份验证响应会转发到 Google 界面。
  9. Google 界面向 Google 服务器发送一条消息,以验证来自集成商的响应(设置用户付款方式)。
  10. Google 服务器通过验证签名来验证响应,然后使用 Google 的 GPT 和关联 ID(authenticationRequestIDassociationID)将用户的帐号与付款集成商相关联。
  11. 系统将向 Google 服务器发送一条成功消息。
  12. 系统会向 Google 界面发送一条成功消息。
  13. 向用户发送成功消息,说明其付款方式已可供使用。

最佳实践和其他注意事项

多种乐器

集成商必须允许将多个GPT与单个用户的集成商帐号相关联。例如,如果用户删除其付款方式,并使用同一集成商用户帐号创建新的付款方式,则需要这样做。

两个 Google 客户可以与同一用户的集成商帐号相关联。如果是这种情况,那么每位用户都拥有不同的付款方式。对于每种付款方式,都有一个独立的关联流程和唯一的 GPT

安全措施

如果集成商认为用户的集成商帐号遭到了帐号盗用,则可以拒绝该帐号的新关联,并且已经关联的现有付款方式可能会在日后购买时返回拒绝代码。

GPT 有效期

GPT 应长期有效,默认情况下没有到期时间。Google 强烈建议您使用不会过期的 GPT。这样就可以为用户提供不间断的购买体验。

对于不支持无失效日期的令牌的集成商,集成商可以通过 associateAccount 方法的 tokenExpirationTime 字段提供失效时间。一旦令牌即将过期,Google 就会引导用户完成刷新令牌流程,以延长令牌的有效期。

其他标识码

除了 GPT 之外,系统还会在关联期间交换其他标识符。下面列出了这些类型,并附上了更多信息的链接。

  • AssociationId:Google 定义的公开令牌,用于标识客户在 Google 的帐号与付款方式之间的关联。虽然 GPT 仅用于服务器到服务器请求,但 AssociationId 是等效的客户端。(请参阅术语表条目以了解详情)。
  • AccountId::供应商定义的标识符(通常为账号),用于发现欺诈行为和了解帐号关系。Google 的客户运营代理也使用这些信息来识别客户问题,然后帮助诊断客户问题。(请参阅术语表条目以了解详情)。
  • AccountNickname(或 fullAccountNickname):供应商用于标识其客户的字符串。它也用于显示目的。供应商会出于 SPII 遮盖 AccountNickname,而不遮盖 fullAccountNickname