如何检测指定.pkpass是否已添加至Google Wallet?
Google Wallet目前没有公开API支持直接查询用户钱包内是否存在特定.pkpass凭证,不过可以通过以下间接方案实现你的需求:
捕获添加操作的成功回调
在调用Google Wallet的添加凭证功能时,利用官方SDK或Web组件提供的回调机制,监听添加操作的成功状态。一旦确认用户完成添加,在应用本地存储(如Android的SharedPreferences、iOS的UserDefaults)或后端数据库中记录该用户的添加状态。后续应用启动时读取这个状态,即可决定是否隐藏引导横幅。绑定用户身份与凭证标识
若你在生成.pkpass凭证时为每个用户分配了唯一标识,可在后端维护用户-凭证关联表。当通过回调确认用户添加成功后,更新表中对应用户的状态。应用每次启动时请求后端接口查询该状态,据此控制横幅的显示与否。这种方案支持跨设备同步状态。配置Webhook接收添加事件(限特定场景)
针对Google Wallet原生支持的凭证类型(如会员卡、优惠券),可配置Webhook接收凭证添加的事件通知。用户成功添加后,Google会向你的后端发送通知,后端更新用户状态后,应用拉取状态即可隐藏横幅。注意此方案仅适用于通过Google Wallet API创建的凭证,直接导入.pkpass文件的场景无法触发这类通知。本地标记快速实现(轻量场景)
对于无需跨设备同步的简单场景,可在用户完成添加后,在本地存储中设置一个布尔标记(例如walletPassAdded: true)。应用启动时读取该标记,若为真则隐藏横幅。缺点是用户清除应用数据或更换设备后,横幅会重新显示。
核心逻辑是:由于隐私与安全限制,无法直接读取用户钱包内容,必须通过在添加流程中捕获成功状态来间接判断,再通过本地或后端存储维护状态,实现横幅的隐藏控制。
内容的提问来源于stack exchange,提问作者George Shalvashvili

