Фон
Теперь вы можете обновлять объекты и классы, чтобы включать модули, предоставляющие дополнительные возможности. Модули будут отображаться на странице с подробной информацией и могут ссылаться на контент эмитента. В этом документе описаны основные шаги, необходимые для включения и использования модулей с помощью API Google Wallet.
Пример функциональности
![]() | ![]() |
| Одиночный вид | Список |
Данное руководство предполагает, что вы знакомы с основными понятиями Google Wallet и уже выполнили рекомендуемые предварительные условия . С любыми вопросами или отзывами обращайтесь к представителю Google Wallet по вопросам внедрения.
Этапы интеграции
Для добавления нового модуля необходимо обновить объект и/или класс, добавив в него поле ValueAddedModuleData . Поле ValueAddedModuleData содержит следующие поля:
[Обязательный] Заголовок LocalizedString
Заголовок, отображаемый в модуле. Ограничение по количеству символов — 60, более длинные строки будут усечены.
Тело локализованной строки
Текст, отображаемый в модуле. Ограничение по количеству символов — 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 дополнительных модулей. | Необходимо сократить количество модулей, добавляющих ценность объекту. |

