保存到 Android 支付:如何为每个 object 生成 2 个唯一 ID

Save to Android Pay: how to generate 2 unique ID's per object

我是 Android 的真正菜鸟,尤其是 'Save to Android Pay' API。我正在关注 Google's Guide and Google's Sample,以实现我自己的报价 class 和 "Save to Android" 按钮。

根据教程,对于我正在创建的每种类型的优惠卡,我都需要一个优惠 Class,并且对于每个将卡片保存到他的 Android 支付应用程序的用户,将生成一个新的 object。所以假设我的卡有以下字段:

  1. 标题
  2. 徽标
  3. 卡 ID#

此外,每个用户都有 2 个唯一字段:

  1. 用户 ID#
  2. 用户 ID2#

我知道何时以及如何传递前 3 个数据字段,但我不确定在何处以及如何传递最后 2 个字段。我在网站上实现 "Save to Android" 按钮(与 the sample 完全一样),并假设我在网站上将两个数据字段另存为 JavaScript 变量。我可以在用户单击 "Save to Android Pay" 按钮时(或之前)从我的网站将 2 个唯一字段发送到 "Save to Android Pay" API 服务器 吗?

得到了 'Save to Android Pay' 团队的回答:

Loyalty.java class 中有一个部分创建具有指定参数的对象。 Java 快速入门以硬编码值为例,但可以轻松更改为用于跟踪用户 ID 号等的变量。

您可以在此部分插入用户的唯一值:

// Define Wallet Instance
LoyaltyObject object = new LoyaltyObject()
.setClassId(issuerId + "." + classId).setId(issuerId + "." + (Math.random()*1000))
.setState("active").setVersion(1L).setBarcode(barcode).setInfoModuleData(infoModuleData)
.setAccountName("Jane Doe").setTextModulesData(textModulesData)
.setMessages(messages).setLinksModuleData(linksModuleData)
.setAccountId("1234567890").setLoyaltyPoints(points);

另请注意,在 WobGenerateJwtServlet.java class 中,它会根据对象类型创建 JWT。专门针对此处的忠诚度对象:

// Create the appropriate Object/Classes
if (type.equals("loyalty")) {
  LoyaltyObject obj = Loyalty.generateLoyaltyObject(credentials.getIssuerId(),
      context.getInitParameter("LoyaltyClassId"), context.getInitParameter("LoyaltyObjectId"));

  obj.setFactory(new GsonFactory());
  payload.addObject(obj);