Google Wallet通用卡移除CardTitle及自定义字体颜色问题
Google Wallet Generic Pass 无CardTitle配置问题
问题背景
基于.NET(使用Google Apis 1.62.0 NuGet包)实现Google Wallet的Generic Pass时,需求为隐藏CardTitle并自定义卡片正面文本字体颜色,但将CardTitle设为null、空字符串、空格或移除该字段后,卡片无法添加至Google Wallet,提示“Something went wrong”,需确认是否支持创建未设置CardTitle的Generic Pass。
预期与当前行为
- 预期行为:将
GenericObject的CardTitle设为null/空后,卡片可成功添加至Google Wallet且不显示标题 - 当前行为:卡片添加失败,弹出错误提示
复现步骤
- 移除
GenericObject的CardTitle字段,或设为string.Empty、空格、null - 将模型转为JwtObject并生成payload
- 创建JWT令牌并拼接至Google Pay API链接
- 通过链接尝试添加卡片至Google Wallet
解决方案
Google Wallet的Generic Pass规范中,cardTitle为必填字段,不能设为null/空字符串或移除字段,否则会触发API校验失败。要实现“不显示标题”的需求,可采用以下方式:
- 用零宽度空格填充CardTitle:将
CardTitle设置为零宽度空格字符(\u200B),该字符在界面上不会显示,但满足字段非空的校验要求 - 自定义正面文本字体颜色:通过
CardTemplateOverride配置fontColor属性,使用十六进制颜色值指定字体颜色
.NET代码示例
var genericObject = new GenericObject { // 零宽度空格,满足必填要求且不显示 CardTitle = "\u200B", CardTemplateOverride = new CardTemplateOverride { CardRowTemplateInfos = new List<CardRowTemplateInfo> { new CardRowTemplateInfo { TwoItems = new TwoItems { StartItem = new TemplateItem { FirstValue = new TemplateText { Text = "自定义正面内容", // 设置字体颜色为白色 FontColor = "#FFFFFF" } } } } } }, // 补充其他必填字段(如Id、ClassId等) Id = "your-pass-id", ClassId = "your-class-id" };
原因说明
Google Wallet的JWT payload校验会严格检查cardTitle字段的非空性,null/空字符串/缺失字段会被判定为无效请求,导致卡片添加失败。使用零宽度空格既满足校验规则,又能达到隐藏标题的视觉效果。
内容的提问来源于stack exchange,提问作者Junaid Sultan
相关产品推荐
相关产品推荐

