手动构建的Google Wallet JWT验证失败,求问题排查方向
Google Wallet JWT验证失败排查指南
问题概述
手动修改官方Pass Builder生成的JWT后,在测试账户后台验证时出现模糊报错:Failed to verify:An error occurred.
关键排查点及修复方案
- 签名失效:直接修改JWT的Payload会破坏原有签名,必须重新签名。官方生成的JWT用测试密钥签名,替换
iss、classId等字段后,需使用Google Cloud项目对应的服务账号私钥重新生成签名后的JWT。 iss字段错误:iss必须填写Google Cloud项目中服务账号的邮箱(格式如xxx@xxx.iam.gserviceaccount.com),不能用个人Gmail,哪怕个人账号是项目Owner也不行。- Class与Object关联异常:确认
classId是测试账户中已创建且发布的有效Pass Class ID;id(Object ID)的前缀必须和classId前缀完全一致(你的示例中前缀匹配,但需确认Class状态正常)。 - 项目绑定错误:检查测试账户是否关联了正确的Google Cloud项目,不匹配会导致验证失败。
- JSON格式问题:修改Payload后,确保JSON语法无错误(如逗号、引号缺失),可通过JSON校验工具确认。
快速修复步骤
- 从Google Cloud控制台导出对应项目的服务账号私钥(JSON格式)。
- 使用官方推荐的JWT库(如PyJWT、JJWT),基于正确的Payload重新生成并签名JWT。
- 确认Pass Class已在测试账户中完成发布操作。
内容的提问来源于stack exchange,提问作者wiradikusuma
相关产品推荐
相关产品推荐

