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

使用PHP Curl调用Google Wallet API创建Pass对象时提示‘无效ID’

解决Google Wallet API创建凭证对象时"not a valid id"错误(400)

问题出在凭证对象的id字段格式不符合Google Wallet的规则,具体要求如下:

  • Google Wallet要求凭证对象的id必须以对应Class的ID作为前缀,格式为{ClassId}.{自定义唯一标识},两者用点分隔
  • 每个凭证对象的id必须全局唯一,且必须与你传入的classId完全关联

你的当前id是277210000034,没有包含classId的前缀3388000000022122130.pass.mycompany.test.loyalty1,这直接导致了校验失败。

修正方案

将id字段修改为包含Class ID前缀的格式,比如:

"id": "3388000000022122130.pass.mycompany.test.loyalty1.277210000034"

修正后的完整请求JSON示例:

{
  "cardTitle": { "defaultValue": { "language":"en-GB", "value":"My Company" }},
  "header": { "defaultValue": { "language":"en-GB", "value":"Loyalty Card" }},
  "logo": { "sourceUri": { "uri": "https://www.mycompany.com/lib/img/logo.png", "description":"company logo" } },
  "hexBackgroundColor": "#b03030",
  "classId": "3388000000022122130.pass.mycompany.test.loyalty1",
  "id": "3388000000022122130.pass.mycompany.test.loyalty1.277210000034",
  "barcode": {"type":"QR_CODE", "value":"277210000034", "alternateText":"277210000034" },
  "heroImage": { "sourceUri": { "uri": "https://www.mycompany.com/lib/img/logo.png", "description":"company background" } },
  "textModulesData": [ { "header":"Header One", "body":"Body One" } ],
  "state": "ACTIVE"
}

补充说明

  • 移除id字段不可行,因为API要求必须提供唯一的id来标识凭证对象
  • 无论使用Loyalty还是Generic类型,该id格式规则都通用

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 14:10:32