You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通用Google Wallet凭证无法显示自定义文本字段问题求助

问题解决方法

1. 修正Class中fieldPath的语法错误

你在cardTemplateOverride里的fieldPath写法不符合Google Wallet的语法规范,无法正确定位到textModulesData中指定id的元素。需要用过滤表达式匹配数组元素,再提取目标字段。

修改后的createPassClass代码:

async function createPassClass(req, res) {
  let genericClass = {
    'id': `${classId}`,
    'classTemplateInfo': {
      'cardTemplateOverride': {
        'cardRowTemplateInfos': [
          {
            'twoItems': {
              'startItem': {
                'firstValue': {
                  'fields': [
                    {
                      // 匹配id为points的textModule,提取body内容
                      'fieldPath': 'object.textModulesData.(id == "points").body'
                    }
                  ]
                }
              },
              'endItem': {
                'firstValue': {
                  'fields': [
                    {
                      // 匹配id为contacts的textModule,提取body内容
                      'fieldPath': 'object.textModulesData.(id == "contacts").body'
                    }
                  ]
                }
              }
            }
          }
        ]
      },
    },
  };
  // 补充调用Google Wallet API创建Class的逻辑,如wallet.genericClasses.create
}

2. 确保Pass Object关联到对应Class

你的createPassObject代码未指定classId,导致凭证对象无法绑定到自定义模板类,配置的模板自然不会生效。需要在genericObject中添加关联字段:

修改后的createPassObject代码:

async function createPassObject(req, res) {
  let objectSuffix = `${req.body.email.replace(/[^\w.-]/g, '_')}`;
  let objectId = `${issuerId}.${objectSuffix}`;

  let genericObject = {
    'id': objectId, // 必须指定对象ID
    'classId': `${classId}`, // 关联到已创建的Class
    'cardTitle': {
      'defaultValue': {
        'language': 'en',
        'value': 'Google I/O \'22'
      }
    },
    
    'textModulesData': [
      {
        'header': 'POINTS',
        'body': '1234',
        'id': 'points'
      },
      {
        'header': 'CONTACTS',
        'body': '20',
        'id': 'contacts'
      }
    ]
  };
  // 补充调用Google Wallet API创建Object的逻辑,如wallet.genericObjects.create
}

3. 验证API调用完整性

确认两个函数中都完成了完整的API调用流程:

  • 创建Class时,调用wallet.genericClasses.create接口并传入genericClass
  • 创建Object时,调用wallet.genericObjects.create接口并传入genericObject
  • 检查OAuth 2.0令牌、服务账号权限等配置是否正确

内容的提问来源于stack exchange,提问作者Rooshan Ali Khan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 19:25:18