背景
您现在可以更新对象和类,以包含增值机会模块。模块将显示在详情页面上,并且可以链接到发行方内容。本文档将逐步介绍使用 Google 钱包 API 启用和使用模块所需的主要步骤。
功能示例
|
|
| 统一数据视图 | 列表视图 |
以下指南假定您熟悉 Google 钱包的基本概念,并且已完成建议的前提条件。 如有任何问题或反馈,请与您的 Google 钱包联系人联系。
集成步骤
如需添加新模块,您需要更新对象和/或类以包含 ValueAddedModuleData。 ValueAddedModuleData 具有以下字段:
[必需] LocalizedString 标题
模块上显示的标题。字符上限为 60 个,如果字符串过长,则会被截断。
LocalizedString 正文
模块上显示的正文。字符数上限为 50,如果字符串过长,则会被截断。
图片图片
模块上显示的图片。建议的图片宽高比为 1:1,系统会自动调整图片大小以符合此宽高比。
[必需] 字符串 URI
用户点击模块后转到的 URI。可以是网页链接或深层链接。ModuleViewConstraints viewConstraints
模块显示必须满足的所有限制条件。ModuleViewConstraints 具有以下字段:TimeInterval displayInterval
向用户显示模块的时间段。可以同时定义 `startTime` 和 `endTime`。除非设置了 `startTime`,否则模块会在插入后立即显示。如果未设置 `endTime`,模块将无限期显示。int32 sortIndex
用于对模块进行排序的索引。排序索引较低的模块显示在排序索引较高的模块之前。如果未指定,系统会假定排序索引为 INT_MAX。如果两个模块的索引相同,表明未定义排序行为。ValueAddedModuleData 示例:
{
"valueAddedModuleData": [
{
"header": {
"defaultValue": {
"language": "en-US",
"value": "10% off merch"
}
},
"body": {
"defaultValue": {
"language": "en-US",
"value": "Shirts, caps, mugs, and more"
}
},
"image": {
"sourceUri": {
"uri": "http://www.images.google.com/opportunity"
}
},
"uri": "http://www.google.com/opportunity",
"viewConstraints": {
"displayInterval": {
"start": {
"date": "2024-08-01T18:30:00"
},
"end": {
"date": "2025-08-01T18:30:00"
}
}
},
"sortIndex": 0
},
{
"header": {
"defaultValue": {
"language": "en-US",
"value": "10% off concessions"
}
},
"uri": "http://www.google.com/new_opportunity"
}
]
}预期行为
成功更新对象和/或课程后,您现在会在相应通行证上看到模块。如果您只添加了一个模块,则会在卡券正面看到该模块。
增值机会模块指南
模块可让您通过其他操作来增强用户的卡券体验。 在创建和管理模块时,您应考虑以下事项:
- 应使用适当的语言定义模块,以表明它们是可操作的,从而帮助用户了解这些模块是可点击的。
- 模块应具有与特定模块相关的适当图像。
- 您可以控制模块,并应根据模块的重要性和相关性主动管理模块的优先级。
- 您应仅向用户显示处于有效状态的模块。您可以通过在模块上设置 displayInterval 来控制此行为,也可以主动从类或对象中添加或移除该模块。
异常处理
| 短信 | 原因 |
|---|---|
| ValueAddedModuleData 必须包含标头。 | ValueAddedModuleData 没有标头。 |
| ValueAddedModuleData 必须包含非空 URI。 | ValueAddedModuleData 没有非空 URI。 |
| 每个课程最多允许 15 个增值模块。 | 需要减少类中的增值模块。 |
| 每个对象最多允许 15 个增值模块。 | 需要减少对象上的增值模块。 |