如何获取Android Pay创建LoyaltyWalletObject所需的各类ID参数?
如何获取Android Pay会员卡LoyaltyWalletObject所需的ISSUER_ID、LOYALTY_CLASS_ID和LOYALTY_OBJECT_ID?
我希望将应用中已有的会员卡保存至Android Pay。在创建LoyaltyWalletObject时,代码如下:
LoyaltyWalletObject wob = LoyaltyWalletObject.newBuilder() .setClassId(ISSUER_ID +"." + LOYALTY_CLASS_ID) .setId(ISSUER_ID +"." + LOYALTY_OBJECT_ID) .setState(WalletObjectsConstants.State.ACTIVE) .setAccountId(userPreferences.getAccountId()) .setIssuerName("Baconrista") .setProgramName("Baconrista Rewards") .build();我需要传入ISSUER_ID、LOYALTY_CLASS_ID和LOYALTY_OBJECT_ID这三个参数,请问该从何处获取这些值?我已查阅Android Pay文档,但觉得难以理解。我仅需实现会员卡保存功能,无需处理支付交易。感谢解答。
别担心,这几个ID其实都需要在Google Pay & Wallet Console(原Wallet Merchant Center)里配置或生成,我给你逐个拆解清楚:
1. ISSUER_ID(发行方ID)
这是Google给你的商家账号分配的唯一身份标识,相当于你在Google Pay体系里的"入场凭证"。获取步骤很简单:
- 登录Google Pay & Wallet Console,注册成为卡片发行方(注意:你只需要开通Wallet Objects相关权限,不需要申请支付交易权限)
- 完成账号注册和身份验证后,在控制台的「Settings」或「Issuer Info」页面就能找到你的ISSUER_ID,它是一串纯数字。
2. LOYALTY_CLASS_ID(会员卡类别ID)
这个ID用来定义同一种会员卡的模板——比如你所有的「Baconrista Rewards」会员卡都属于同一个类别。创建和获取方式:
- 在控制台里找到「Loyalty Classes」(会员卡类别)选项
- 新建一个类别,填写商家名称、会员卡名称(对应你代码里的
"Baconrista Rewards")、积分规则等基础信息 - 创建完成后,你可以自定义LOYALTY_CLASS_ID(比如用
baconrista_rewards这种好记的字符串),也可以用系统自动生成的ID。注意Class ID的完整格式是ISSUER_ID.自定义ID,不过你代码里已经用ISSUER_ID做拼接了,所以这里只需要填自定义的部分就行。
3. LOYALTY_OBJECT_ID(会员卡实例ID)
这个是每张用户会员卡的唯一标识——因为每个用户的会员卡都是独立的(对应不同的accountId)。这个ID完全由你自己定义,只要满足两个要求:
- 完整格式是
ISSUER_ID.自定义唯一字符串 - 自定义部分要保证每个用户的卡片不重复,比如可以直接用用户的账号ID(就是你代码里的
userPreferences.getAccountId()),或者拼接UUID、时间戳之类的唯一值。举个例子,如果用户的accountId是user_12345,那OBJECT_ID可以设为ISSUER_ID + ".user_12345",这样就能确保每张卡片都独一无二。
额外提一句:测试阶段你可以直接在控制台手动创建Class,然后在代码里生成对应的Object关联到这个Class;正式环境可能需要调用Google Wallet的API来批量创建Class和Object,但核心逻辑都是先拿到这三个ID,再确保Object ID的唯一性。
内容的提问来源于stack exchange,提问作者justmee
相关产品推荐
相关产品推荐

