典型的 API 流程

下图介绍了用于插入类、保存对象和更新对象的典型通信流程。在您的服务器、网络浏览器和 Google Pay API for Passes 之间进行的所有操作都由您负责实现。虽然下图使用的是会员卡,但所有其他卡券均可以使用类似的流程。

适用于 JS 按钮和 JWT 网页链接的典型 API 流程

下面的概要和先前的图表详细介绍了 JavaScript (JS) 按钮和 JSON 网络令牌 (JWT) 的典型 API 流程:

  1. 会员卡发卡机构创建一个 LoyaltyClass
    1. 您的服务器定义 LoyaltyClass
    2. 您的服务器发出 POST 请求以在 Google Pay API for Passes 服务器中插入 LoyaltyClass
  2. 您的服务器使用相关服务,为特定的 LoyaltyClass 生成 LoyaltyObject 的 JWT。此对象代表了该用户的会员卡。
    1. 您的服务器使用 JWT 呈现保存到 Google Pay (S2GP) 按钮:
      • 对于网站,使用我们的 JavaScript 按钮。
      • 对于电子邮件、短信和原生应用,使用含有 S2GP 按钮的 JWT 链接。
  3. 用户点击或点按会员卡发卡机构网站、电子邮件、原生应用或短信中的保存到 Google Pay
    1. 用户被引导到着陆页保存 LoyaltyClass 对象。要保存的对象会根据 JWT 呈现于着陆页。如果从原生应用中点按该按钮,系统会提示用户在 Google Pay 应用中保存对象。
    2. 用户点击发卡机构属性中的保存到 Google Pay,以保存 LoyaltyObject
    3. LoyaltyObject 被插入 Google 服务器,然后推送到 Google Pay 应用。LoyaltyObject 即为“会员卡”。
  4. 发卡机构更新卡片数据:
    1. 会员卡发卡机构使用 Object.id 执行 LoyaltyObjectGET 请求。
    2. 会员卡发卡机构更新 LoyaltyObject
    3. 会员卡发卡机构发出 PUTPATCH 请求,以在 Google Pay API for Passes 服务器中插入已更新的 LoyaltyObject
    4. LoyaltyObject 被推送到 Google Pay 应用。

“瘦”JWT 变体

由于浏览器执行的截断,网页链接中使用的 JWT 不得超过 1800 个字符。如果这成为一个挑战,那么您最好事先插入类和对象。然后,JWT 只需要包含“对象 id”字段。

下图说明了将“保存到 Google Pay 按钮”添加到电子邮件或短信中的 API 流程。