跳到内容

Google Wallet API

Google Wallet API 允许您以编程方式创建、更新、列出和管理 Google Wallet 通行证。它支持与控制面板中的通行证构建器相同的操作。

使用它来发放会员卡、优惠、礼品卡、活动门票、登机牌、公交票和通用通行证,并向已保存在用户设备上的通行证推送实时更新。

基本 URL

Anchor link to
https://apple-passkit.svc-nue.pushwoosh.com

所有端点都通过 HTTPS 提供服务。除非另有说明,请求和响应均使用 application/json

身份验证

Anchor link to

每个请求都必须包含一个 Authorization 标头,其中包含您的 Pushwoosh API 访问令牌

Authorization: Token <api-token>

拥有该令牌的帐户必须拥有 applicationCode 引用的应用程序。对属于另一个帐户的应用程序的请求将返回 403 Forbidden

  • 字段命名: JSON 字段使用 lowerCamelCase(例如,serialNumberhexBackgroundColorlogoUrl)。
  • 未填充的字段: 响应包含所有字段,即使为空或值为零。
  • 身份: serialNumber 总是在创建通行证时由服务器分配。您在创建时发送的任何值都将被忽略。完整的 Google Wallet 对象 ID 是 {issuerId}.{serialNumber}
  • 图片: logoUrlheroImageUrl 是指向 Google 获取的图片的公共 HTTPS URL,而不是上传的文件。
  • 通行证样式: 通行证上必须设置且只能设置一个样式对象(genericofferloyaltyeventTicketgiftCardflighttransit)。创建后样式不能更改。

错误响应

Anchor link to
HTTP 状态含义
400 Bad Request无效参数——缺少必填字段或格式错误。
401 UnauthorizedAuthorization 标头缺失或无效。
403 Forbidden应用程序不属于调用者的帐户。
404 Not Found未找到通行证、模板或应用程序。
503 Service Unavailable服务已满负荷或暂时不可用。
方法路径描述
POST/api/google/pass/validate验证通行证配置
POST/api/google/pass/create创建新的通行证对象并获取保存链接
POST/api/google/pass/update/{serialNumber}更新现有通行证;Google 将传递更改
GET/api/google/pass/{applicationCode}/{serialNumber}/save-link获取“添加到 Google Wallet”的保存链接
GET/api/google/pass/{applicationCode}/{serialNumber}获取单个通行证
GET/api/google/passes列出应用程序的所有通行证
POST/api/google/pass/{applicationCode}/{serialNumber}/state激活或作废通行证
DELETE/api/google/pass/{applicationCode}/{serialNumber}删除通行证
GET/api/google/config获取应用程序的 Google Wallet 配置
GET/api/google/templates列出可用的通行证模板
GET/api/google/templates/{filename}获取单个模板

创建通行证

Anchor link to

在 Google Wallet 中创建通行证类和对象,然后返回服务器分配的序列号、完整的对象 ID 和一个“添加到 Google Wallet”的保存链接。

POST /api/google/pass/create

请求正文

Anchor link to
参数类型是否必需描述
passobject描述通行证的通行证对象。必须且只能设置一种样式。
userIdstring通行证发放给的 Pushwoosh User ID
applicationCodestringPushwoosh 应用程序代码
请求示例
Anchor link to
{
"applicationCode": "XXXXX-XXXXX",
"userId": "user-123",
"pass": {
"hexBackgroundColor": "#3c414c",
"logoUrl": "https://cdn.acme.com/logo.png",
"loyalty": {
"programName": "Acme Rewards",
"accountName": "Jane Doe",
"accountId": "1234567890",
"pointsLabel": "Points",
"pointsBalance": "1200",
"rewardsTier": "Gold"
},
"barcode": {
"format": "QR_CODE",
"value": "1234567890"
}
}
}
字段类型描述
serialNumberstring服务器分配的已创建通行证的唯一身份。
objectIdstring完整的 Google Wallet 对象 ID:{issuerId}.{serialNumber}
saveLinkstring“添加到 Google Wallet”链接:https://pay.google.com/gp/v/save/{jwt}
messagestring结果消息。
响应示例
Anchor link to
{
"serialNumber": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"objectId": "XXXXXXXXXXXXXXX.XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX",
"saveLink": "https://pay.google.com/gp/v/save/{jwt}",
"message": "Pass created successfully"
}

验证通行证

Anchor link to

根据 Google 的要求检查通行证配置,而无需创建它。在调用 create 之前很有用。

POST /api/google/pass/validate

请求正文

Anchor link to
参数类型是否必需描述
passobject要验证的通行证对象
字段类型描述
validboolean通行证是否通过验证。
errorsarray of strings必须修复的阻塞性问题。
warningsarray of strings非阻塞性建议。

更新通行证

Anchor link to

使用新内容修补通行证对象。然后,Google 会将更新后的版本分发到保存了该通行证的每台设备。可以选择性地发送带有更新的 Android 通知。

POST /api/google/pass/update/{serialNumber}

路径参数

Anchor link to
参数类型描述
serialNumberstring创建通行证时返回的序列号。

请求正文

Anchor link to
参数类型是否必需描述
updatesobject包含新内容的通行证对象。样式不能更改。
applicationCodestringPushwoosh 应用程序代码
notifyMessagestring如果不为空,则向所有保存了该通行证的人推送带有此文本的 Android 通知。为空表示静默更新。
notifyOnUpdateboolean请求字段更新通知。只有 loyaltyeventTicketflight 通行证会实际通知;其他样式接受该标志但从不发送通知。通知仅在相关开始时间的 3 小时内触发,并且 Google 将其限制为每张通行证每 24 小时最多 3 条通知。
字段类型描述
successboolean更新是否成功。
messagestring结果消息。

获取保存链接

Anchor link to

为已创建的通行证返回一个“添加到 Google Wallet”的保存链接。通行证对象必须已存在(通过创建通行证创建)。

GET /api/google/pass/{applicationCode}/{serialNumber}/save-link

字段类型描述
saveLinkstringhttps://pay.google.com/gp/v/save/{jwt}

获取通行证

Anchor link to

返回单个存储的通行证,包括其完整的通行证对象。

GET /api/google/pass/{applicationCode}/{serialNumber}

返回 { "pass": { ... } },一个通行证记录对象

列出通行证

Anchor link to

返回为应用程序存储的通行证的分页、排序列表。

GET /api/google/passes?applicationCode=XXXXX-XXXXX&page=0&perPage=20

查询参数

Anchor link to
参数类型是否必需描述
applicationCodestringPushwoosh 应用程序代码
orderBystring排序字段:UPDATED(默认)或 CREATED
orderDirectionstring排序方向:DESC(默认,最新在前)或 ASC
pageinteger从零开始的页面索引。默认为 0
perPageinteger页面大小。0 或省略则使用服务器默认值。
字段类型描述
passesarray of objects当前页的通行证记录
pageinteger返回的页面索引。
perPageinteger此响应使用的页面大小。
totalinteger应用程序在所有页面上的通行证总数。

设置通行证状态

Anchor link to

激活或作废通行证。已作废(非活动)的通行证会移动到用户 Google Wallet 中的已过期通行证部分;记录会保留,以便可以重新激活。

POST /api/google/pass/{applicationCode}/{serialNumber}/state

请求正文

Anchor link to
参数类型是否必需描述
activebooleantrue 将通行证设置为 ACTIVEfalse 将其作废 (INACTIVE)。

成功时返回一个空对象 {}

删除通行证

Anchor link to

在 Google 中作废通行证,并移除其在 Pushwoosh 中存储的记录。

DELETE /api/google/pass/{applicationCode}/{serialNumber}

成功时返回一个空对象 {}

获取配置

Anchor link to

返回应用程序的 Google Wallet 配置状态。

GET /api/google/config?applicationCode=XXXXX-XXXXX

字段类型描述
hasServiceAccountboolean是否配置了服务帐户密钥。
issuerIdstring已配置的 Google Pay & Wallet Console 发行者 ID
serviceAccountEmailstring已配置的服务帐户client_email

列出可用的示例通行证模板,或获取一个作为您可以作为起点的通行证对象

GET /api/google/templates — 返回 { "templates": [ { "filename", "name", "description", "style" } ] }

GET /api/google/templates/{filename} — 返回 { "template": { ...pass object... } }

对象参考

Anchor link to

通行证对象

Anchor link to
字段类型描述
serialNumberstring在创建时由服务器分配;用于标识通行证。
generic / offer / loyalty / eventTicket / giftCard / flight / transitobject通行证样式。必须且只能设置一个。请参阅下面的样式对象。
hexBackgroundColorstring卡片背景颜色,格式为 #rrggbb
logoUrlstring徽标图片的公共 HTTPS URL。对于会员卡和公交票是必需的。
heroImageUrlstring宽幅横幅图片的公共 HTTPS URL。
barcodeobject通行证上显示的条形码
textModulesarray详情视图中显示的文本模块
linksarray详情视图中显示的链接模块
expirationTimestringGoogle 自动使通行证过期的 ISO 8601 时间。为空表示无过期时间。
appLinkobject应用链接:通行证正面的 CTA 按钮。
locationsarray触发地理围栏通知的位置(最多 10 个)。
holdersPolicystring谁可以保存通行证:ONE_USER_ALL_DEVICES(默认)、ONE_USER_ONE_DEVICEMULTIPLE_HOLDERS

通用对象

Anchor link to
字段类型描述
cardTitlestring必需。卡片顶部的发行者/计划名称。
headerstring必需。卡片的主标题。
subheaderstring副标题。
cardFieldsarray最多 6 个固定在正面的文本模块(最多 3 行,每行 2 个)。

优惠对象

Anchor link to
字段类型描述
titlestring必需。例如,全场八折
providerstring必需。商家名称。
detailsstring优惠详情。
finePrintstring条款和条件。
redemptionChannelstringONLINEINSTOREBOTH(默认)或 TEMPORARY_PRICE_REDUCTION
issuerNamestring显示在 Google 的“由…发行”界面上;默认为 provider

会员对象

Anchor link to
字段类型描述
programNamestring必需。要求通行证上有 logoUrl
accountNamestring卡片上显示的会员姓名。
accountIdstring卡片上显示的会员 ID。
pointsLabelstring例如,积分。仅在有余额时显示。
pointsBalancestring积分余额。
rewardsTierstring例如,黄金会员
rewardsTierLabelstring等级旁边的标签;默认为 等级
issuerNamestring默认为 programName

活动门票对象

Anchor link to
字段类型描述
eventNamestring必需。
venueName / venueAddressstring场馆详情。
startDateTime / endDateTimestring带偏移量的 ISO 8601(例如,2026-07-01T19:30:00+02:00)。
ticketHolderName / ticketNumber / ticketTypestring持票人和门票详情。
section / row / seat / gatestring座位详情。
issuerNamestring默认为 eventName

礼品卡对象

Anchor link to
字段类型描述
merchantNamestring必需。
cardNumberstring必需。
pinstring卡片 PIN 码。
balancestring十进制金额,例如 25.00。需要 balanceCurrency
balanceCurrencystringISO 4217 货币代码,例如 USD
issuerNamestring默认为 merchantName

航班对象

Anchor link to
字段类型描述
carrierIataCodestring必需。2 个字母的 IATA 代码,例如 LX
airlineNamestring航空公司显示名称。
flightNumberstring必需。仅数字,例如 113
originAirportCode / destinationAirportCodestring必需。3 个字母的 IATA 代码。
originTerminal / originGate / destinationTerminalstring航站楼和登机口详情。
departureDateTimestring必需。出发机场当地时间,ISO 8601 不带偏移量(例如,2026-09-01T06:30:00)。
boardingTime / arrivalDateTimestring相同的本地格式。arrivalDateTime 是目的地当地时间。
passengerNamestring必需。
confirmationCode / seatNumber / seatClass / boardingGroupstring乘客详情。
issuerNamestring默认为 airlineName,然后是承运人代码。

公交对象

Anchor link to
字段类型描述
transitTypestring必需。BUSRAILTRAMFERRYOTHER
transitOperatorNamestring必需。要求通行证上有 logoUrl
passengerNamestring必需。
ticketNumberstring票号。
tripTypestringONE_WAY(默认)或 ROUND_TRIP
legsarray按旅行顺序列出的一个或多个公交路段
issuerNamestring默认为 transitOperatorName

公交路段对象

Anchor link to
字段类型描述
originName / destinationNamestring必需。
departureDateTime / arrivalDateTimestringISO 8601;偏移量可选(省略时为当地时间)。
platform / coach / seatstring登车详情。
fareNamestring例如,Anytime Single

条形码对象

Anchor link to
字段类型描述
formatstringQR_CODEPDF_417AZTECCODE_128EAN_13 和其他 Google Wallet 条形码类型。
valuestring编码在条形码中的数据。
altTextstring条形码下方显示的文本。

文本模块对象

Anchor link to
字段类型描述
idstring模块的标识符。
headerstring模块标题。
bodystring模块文本。

链接模块对象

Anchor link to
字段类型描述
uristring外部链接 URL。
descriptionstring详情视图中显示的链接标签。

应用链接对象

Anchor link to
字段类型描述
uristringWeb URL 或深层链接目标 URI。
androidPackageNamestring可选。设置后,将打开 Android 应用。
descriptionstring目标 URI 的内部描述(不是可见的按钮标签);默认为 URI。

位置对象

Anchor link to
字段类型描述
latitudenumber-90.0+90.0
longitudenumber-180.0+180.0

通行证记录对象

Anchor link to

由 list/get 端点返回。

字段类型描述
serialNumberstring通行证序列号。
objectIdstring完整的 Google Wallet 对象 ID {issuerId}.{serialNumber}
cardTitlestring通行证的显示标题/头部。
headerstring次要显示标题。
userIdstring通行证发放给的 Pushwoosh User ID
createdAt / updatedAtstring创建和最后更新的时间戳。
statestringACTIVEINACTIVE
stylestringgenericofferloyaltyeventTicketgiftCardflighttransit
passobject完整的通行证对象,用于编辑。