Google Standard Payments:

令牌化 FOP

概览

令牌化 FOP(付款方式)是付款平台中的一种付款集成。为了让用户能够使用此 FOP 付款,Google 和付款集成商必须执行一次性的帐号身份凭据交换。接下来,系统会经历创建令牌的流程,令牌代表该用户所使用的付款方式。然后,此令牌即可用于反复付款。这些 API 目前有 2 个版本。版本 2 支持移动运营商和参考编号提供商。所有其他令牌化 FOP 提供方都应实现版本 1。本文档的其余部分将重点介绍版本 1。

Google 使用两个流程来确定身份并创建此令牌:

  1. 身份验证流程:识别和验证用户(进行身份验证)。
  2. 关联流程:为用户建立令牌(新的令牌或之前经过识别和身份验证的令牌)。此令牌表示特定用户的特定付款方式。此令牌可用于日后的购买交易。

令牌一经确定,Google 便会在购买流程中使用它,为用户提供快速、顺畅的结账体验。Google 使用此令牌来表示客户的付款方式实例。它也称为乐器。Google 客户可能使用多种付款方式来支付商品和服务费用。

最后,集成商的银行和 Google 的银行之间的所有资金转移都是在汇款流程中完成的。

选择产品
1) 用户选择要购买的商品
选择付款方式
2) 然后,选择付款方式
添加付款方式
3) 现在,他们添加了新的付款方式
重定向
4) 他们被重定向以进行身份验证
已通过身份验证
5) 最后,他们通过了身份验证,可以购买

下图说明了流程的大致情况:

令牌化 FOP 概览

令牌化 FOP 概览图

概括来讲,将您的服务作为 Google 产品的付款方式添加涉及以下流程:

  1. 身份验证流程
  2. 关联流程
  3. 购买流程
  4. 退款流程
  5. 汇款流程

以下部分更详细地介绍了这些流程;指南部分更详细地介绍了这些流程。

概念与术语

"时-成功。

符号与惯例

本文档中的“必须”“不得”“必需”“会”“不会”“应”“不应”“建议”“可以”和“非强制”等关键字应按 RFC 2119 中的说明进行解释。

时间戳

所有时间戳均以自世界协调时间 (UTC) 的 Unix 纪元(1970 年 1 月 1 日)起的毫秒数表示。

例如:

  • 2019 年 4 月 23 日晚上 8:23:25 (GMT) = 1556051005000 毫秒
  • 2018 年 8 月 16 日中午 12:28:35 (GMT) = 1534422515000 毫秒

金额

此 API 中的货币值采用 Google 的一项标准“micros”格式。微单位是一种基于整数的固定精度格式。如需以微单位表示货币价值,请用标准货币价值乘以 1,000,000。

例如:

  • 1.23 美元 = 1230000 微美元
  • 0.01 美元 = 10000 微美元

幂等性

此 API 中的所有方法调用都必须具有幂等行为。Google 会不定期地重试请求,以确保事务在两端都处于相同的状态。集成商不应尝试重新处理任何已经成功处理的请求。应改为报告处理成功后的响应。所有方法都有一个包含 requestId 的通用 RequestHeader。此 requestId 是所有调用的幂等键。

任何非终端响应(非 HTTP 200 成功)都不得以幂等方式处理。因此,之前获得 400(错误请求/失败前提条件)的请求在被再次调用时,不得以幂等的方式返回 400,因此必须重新评估该请求。在重新评估时,它可能会返回 400 或得到成功处理。

如需详细了解幂等性,请参阅此详细指南

集成商

使用 Google 付款平台开展业务的公司。组织可以是内部 (1P) 企业,例如 YouTube 或 AdWords,也可以是希望集成其服务以与 Google 生态系统集成的外部 (3P) 企业。

付款方式

付款方式。这比乐器更笼统。Visa、MasterCard 和 PayPal 都是 FOP。

票据

特定客户使用某种付款方式的具体实例。例如,用户的信用卡或 PayPal 帐号。特定客户的令牌化 FOP 也是一种付款方式,因为它是该客户的一种付款方式,安全地存储在我们的系统中。

令牌

Google 系统中的表示特定用户的付款方式。代币包含进行购买交易所需的所有信息,因此也是一种付款方式。其中可能包括用户在其集成商处拥有的帐号等信息。

主要流程

身份验证流程

身份验证是必须执行的第一个流程。身份验证流程旨在向集成商识别用户身份和对其进行身份验证。身份验证可能有多种方式。令牌化 FOP 支持通过以下两种方式来识别和验证用户身份:

  1. SMS-MT 动态密码身份验证(短信手机终止,动态密码)
  2. 重定向身份验证

在初始配置阶段,集成商会与 Google 合作,选择最适合其产品的身份验证机制。

身份验证流程可在两种情况下使用:首先,识别新客户以建立关联;其次,要求用户提供现有付款方式的凭据。身份验证流程的结果可以作为关联流程刷新令牌流程、质询购买流程等多个流程的输入。此外,身份验证流程可在独立模式下使用,不依赖于任何后续流程。

SMS-MT 动态密码身份验证

在此身份验证机制中,用户可在 Google 界面中输入电话号码。Google 通过 sendOtp 方法将此电话号码发送给集成商。集成商向用户发送动态密码。用户将密码输入到 Google 界面中,后者会将密码发送给集成商。这会触发付款集成商返回成功响应。

在独立模式下使用 SMS-MT 动态密码身份验证时,动态密码的值会通过 verifyOtp 方法发送给集成商。此方法会验证所提供的动态密码是否就是所发送的动态密码。

重定向身份验证

重定向身份验证由 Google 将用户重定向到集成商拥有的应用。该应用可以是 Web 应用,也可以是 Android 应用。

Android 重定向和 Web 重定向的行为类似。Google 将用户重定向到集成商的应用。集成商以集成商最自然的方式识别用户身份并对用户进行身份验证。通过身份验证后,集成商会将用户重定向回 Google 的界面以完成关联。重定向后,Google 会提供一个 requestId 以识别此身份验证会话。然后在关联期间使用该标识符作为身份验证证明。

选择此流程的集成商必须提供网络身份验证网址,因为这是所有平台(桌面版或移动版)的最通用的分母。不过,我们强烈建议您使用 Android 身份验证,以便在移动设备上提供最佳用户体验。

根据设备上下文和安装的应用,Google 界面会选择网页或 Android 应用重定向。

这种身份验证机制可以为集成商提供最大的自由度。您可以通过多种方式对用户进行身份验证和识别。“用户名 + 密码”或生物识别信息和安全问题都是可行的解决方案。Google 并不打算规定集成商如何验证用户。集成商负责验证用户身份。这样一来,Google 打算利用集成商的各种界面来验证用户身份,并且只需向 Google 提供身份验证证明即可。

如需详细了解身份验证,请参阅此详细指南

关联流程

在通过上述机制之一进行身份验证流程后,用户需要完成关联流程。关联流程的目的是创建 Google 付款令牌 (GPT),以便创建付款方式。此流程会执行以下操作:

  1. 协商代表此用户的身份(称为令牌)。
  2. 提供帐号信息,以便通知 Google 的风险引擎。
  3. 收集必要的首次设置信息以创建和建立 GPT

结果是既定的 GPT 获得 Google 与集成商的同意。

两个 Google 用户可以与集成商共享同一用户的帐号。在这种情况下,每个用户都会有不同的付款方式。每种付款方式都有独立的关联流程,因此具有唯一的 GPT

此插图将向您介绍一个名为 InvisiCash 的虚构令牌化 FOP。演示了用户完成身份验证流程关联流程所需执行的步骤。

关联流程概览

令牌化 FOP-Invisicash

  1. 一位电子邮件地址为 sf@gmail.com 的 Google 用户希望将其 InvisiCash 帐号添加到 Google Play 商店,以便使用该帐号进行购买交易。
  2. Google Play 商店会打开 InvisiCash 应用以进行身份验证。
  3. 用户使用电子邮件地址 sally@otheremail.com 登录了其 InvisiCash 帐号。如果该用户使用她的 Gmail 电子邮件地址登录了自己的 InvisiCash 帐号,则可能会出现以下情况。

  4. InvisiCash 应用将身份验证 ID 发送回 Google Play 商店。

  5. Google Play 商店将身份验证 ID 发送到 Google 服务器。

  6. Google 服务器向 InvisiCash 服务器发送一条消息以关联该账户。该关联包括身份验证 ID、GPT(Google 付款令牌)和关联 ID。

  7. InvisiCash 服务器会存储 Google 付款令牌 (GPT) 和关联 ID。这两者现在都与 Sally 的 InvisiCash 帐号相关联。

  8. InvisiCash 批准该关联。然后,Google 的服务器会创建一种付款方式,供您日后购物时使用。