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

调用Google Wallet API遇header未设置问题,疑与认证相关

解决Google Wallet API 400 "header must be set"错误

这个错误不是认证问题,是你创建的GenericObject缺少必填的Header字段。Google Wallet的通用凭证(Generic Pass)要求必须配置Header部分,否则会返回invalidResource类型的400错误。

修复步骤

在你的GenericObject初始化代码中,添加Header字段,示例如下:

var genericObject = new GenericObject
{
    Id = $"{_issuerId}.{Guid.NewGuid()}",
    ClassId = _passClass,
    State = "ACTIVE",
    // 添加必填的Header部分
    Header = new GenericHeader
    {
        Label = new LocalizedString
        {
            DefaultValue = new TranslatedString
            {
                Language = "en-US",
                Value = "凭证标签" // 替换为你的Header标签文本
            }
        },
        Value = new LocalizedString
        {
            DefaultValue = new TranslatedString
            {
                Language = "en-US",
                Value = "凭证值" // 替换为你的Header值文本
            }
        }
    },
    HeroImage = new Image
    {
        SourceUri = new ImageUri
        {
            Uri = String.IsNullOrEmpty(request.ImageUrl) ? "https://storage.googleapis.com/wallet-lab-tools-codelab-artifacts-public/google-io-hero-demo-only.png" : request.ImageUrl
        }
    },
    CardTitle = new LocalizedString
    {
        DefaultValue = new TranslatedString
        {
            Language = "en-US",
            Value = request.Title
        }
    },
    Barcode = new Barcode
    {
        Type = "CODE_39",
        Value = request.BarcodeValue
    }
};

关键说明

  • GenericHeader是GenericObject的必填字段,必须包含Label和Value两个子字段,两者都需要用LocalizedString和TranslatedString配置多语言(至少提供默认语言版本)。
  • 你之前怀疑认证有问题,但从错误信息和代码来看,认证流程是正常的——如果是认证失败,会返回401/403类错误,而非400的invalidResource。

内容的提问来源于stack exchange,提问作者Matthew

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 18:54:53