我是Android的真正菜鸟,尤其是'Save to Android Pay' API。我正在遵循Google的指南和Google的示例,以实现我自己的报价类和"保存到Android"按钮。
根据教程,对于我正在创建的每种类型的优惠卡,我都需要一个报价类,对于将卡保存到其 Android Pay 应用程序的每个用户,将生成一个新对象。假设我的卡具有以下字段:
- 标题
- 商标
- 卡编号#
此外,每个用户都有 2 个唯一字段:
- 用户编号#
- 用户 ID2#
我知道何时以及如何传递前 3 个数据字段,但我不确定在哪里以及如何传递最后 2 个字段。我正在网站上实现"保存到Android"按钮(与示例完全相同),并假设我在我的网站上将两个数据字段另存为 JavaScript 变量。我可以在用户点击"保存到Android Pay"按钮时(或之前)从我的网站将 2 个唯一字段发送到"保存到 Android Pay"API 服务器吗?
从"保存到Android Pay"团队得到答案:
Loyalty.java
类中有一个部分,用于创建具有指定参数的对象。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
类中,它会根据对象类型创建 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);