Функция регистрации и входа в программу лояльности позволяет пользователям находить вашу программу лояльности, присоединяться к ней или входить в свою учётную запись непосредственно из Google Кошелька. Для завершения процесса пользователи будут перенаправлены на ваш мобильный сайт, после чего смогут добавить свою официальную карту в Google Кошелек.
Реализация этой функции является необходимым условием для преобразования «статичных» абонементов, добавленных пользователями, в «динамические» абонементы, привязанные к API. В этом руководстве представлен обзор преимуществ и этапов внедрения, необходимых для включения регистрации, входа и обновления абонементов в вашей программе лояльности.
Обзор
Чтобы начать работу, убедитесь, что вы предварительно настроили свой проект и имеете доступ к API Google Wallet.
Для реализации этой функции необходимо выполнить следующие четыре шага:
- Настройте тестовый класс: настройте Google Wallet для тестирования ваших потоков.
- Разработка страниц: создание страниц регистрации/входа с использованием Google Wallet
SharedDataType. - Реализуйте обратную связь: отправьте карту лояльности в Google Wallet после действия.
- Запросить проверку: отправить на проверку и запросить активацию обновления.
Зачем внедрять программу лояльности?
Чтобы понять ценность этой интеграции, важно различать два типа пропусков, существующих в Google Wallet: L1 (добавленный пользователем) и L2 (выданный партнером) .
Разница между L1 и L2
| Особенность | Пропуск L1 (добавленный пользователем) | Пропуск L2 (выдан партнером) |
|---|---|---|
| Источник | Создается, когда пользователь вручную сканирует физическую карту или вводит номер. | Создается и отправляется с использованием API кошелька после того, как пользователь зарегистрируется или войдет в систему, используя ваш поток. |
| Контроль | Статика. Партнёр не видит и не контролирует этот проход. | Динамичный. Партнер имеет полный контроль через API. |
| Функциональность | Статичное изображение штрихкода. Не может быть обновлено. | Может обновлять баланс баллов, статус уровня, отображать персонализированные предложения и получать уведомления. |
Пути обновления: «мост» к вашей программе
Создавая процесс регистрации в программе лояльности («пункт назначения»), вы позволяете Google построить «мост», который переводит пользователей со статических карт первого уровня на ваши официальные карты второго уровня. Существует два основных триггера перехода:
- Обновление карты с уровня 1 на уровень 2: если пользователь ранее вручную добавил вашу карту (Уровень 1), Google Wallet может предложить ему перейти на новую страницу входа, чтобы перейти на официальную динамическую карту (Уровень 2).
- Обновления для импортированных пропусков Gmail: если Google Wallet обнаружит карту лояльности, использующую Gmail пользователя, он может предложить пользователю посетить ваш поток и пройти аутентификацию для получения официального пропуска L2.
Шаг 1: Настройте тестовый класс в Google Wallet
Определите URL-адреса для регистрации и входа, логотип вашей программы и выбранные поля пользователя. Затем используйте вложенные поля discoverableProgram в классе loyaltyclass , чтобы задать соответствующие значения.
Задайте значения в discoverableProgram , чтобы создать черновую версию вашей программы лояльности с поддержкой регистрации/входа. Чтобы убедиться, что она видна тестировщикам, убедитесь, что у них есть доступ к вашей консоли Google Pay и Wallet. Подробнее о том, как предоставить доступ к консоли Google Pay и Wallet другим пользователям, см. на странице «Узнать о пользователях» .
Чтобы завершить проверку функциональности вашей реализации в процессе разработки, свяжитесь с нами через виджет службы поддержки в консоли Google Pay и Wallet. В консоли выберите в теме «API Google Wallet» и в подтеме «Вход/регистрация в программе лояльности» .
Шаг 2: Разработайте страницы регистрации и входа
Когда пользователь решает войти в вашу программу лояльности или зарегистрироваться в ней, он перенаправляется на специальную страницу на вашем сайте для завершения процесса регистрации или входа. Если пользователь решит зарегистрироваться, Google Wallet запросит у него разрешение на передачу вам его данных.
Вам необходимо предоставить одну из двух страниц или обе, которые позволяют пользователям выполнять следующие действия:
- URL-адрес для входа, с помощью которого пользователь может войти в существующую учетную запись.
- URL-адрес регистрации , где пользователь может создать новую учетную запись.
Ваши страницы входа и регистрации должны соответствовать следующим требованиям:
- Обеспечить удобство использования на мобильных устройствах.
- Минимизируйте количество обязательных полей при регистрации.
- Разрешить пользователю завершить вход в систему или регистрацию на одной странице.
- Используйте
HTTPSшифрование с действительным сертификатом, чтобы гарантировать безопасную передачу пользовательских данных. - Обеспечьте бесперебойную работу страниц входа и регистрации на уровне не менее 99,9%.
В дополнение к этим требованиям мы рекомендуем вам разрешить пользователям регистрироваться в вашей программе лояльности без заполнения каких-либо форм или ограничиться страницей только принятием ваших условий обслуживания.
- Используя данные пользователя, предоставленные в
SharedDataType, вы можете создать учетную запись и немедленно отправить обратно его карту лояльности. - Впоследствии вы можете отправить пользователю по электронной почте одноразовый пароль или ссылку для настройки его пароля и дополнительных данных учетной записи.
- Это снижает вероятность отказа пользователей от процесса регистрации, поскольку каждый дополнительный шаг может привести к еще одному отказу.
При отображении страницы входа или регистрации Google Wallet создаст Android WebView и отправит POST запрос на указанный вами URL. Данные пользователя содержатся в параметре SharedDataType , который включается в POST запрос с Content-Type application/x-www-form-urlencoded и кодировкой UTF-8 . Значение параметра SharedDataType представляет собой JSON-объект в кодировке Base64.
В зависимости от выбранного пользователем действия и полей, которые вы указали для запроса у пользователя, объект JSON может содержать следующие поля.
| Поле | Зачисление |
|---|---|
| электронная почта | ✓ |
| имя | ✓ |
| фамилия | ✓ |
| адресная строка [1-3] | ✓ |
| город | ✓ |
| состояние | ✓ |
| почтовый индекс | ✓ |
| страна | ✓ |
| телефон | ✓ |
Ниже приведен декодированный пример объекта JSON, содержащегося в SharedDataType .
Ресурс
{
"firstName": "Jane",
"lastName": "Doe",
"addressLine1": "1600 Amphitheatre Pkwy",
"addressLine2": "Apt 123",
"addressLine3": "Attn:Jane",
"city": "Mountain View",
"state": "CA",
"zipcode": "94043",
"country": "US",
"email": "jane.doe@example.com",
"phone": "555-555-5555"
}
Шаг 3: Реализуйте немедленную отправку средств в Google Wallet
После аутентификации (входа) или создания учетной записи (регистрации) ваша страница должна немедленно отправлять карту лояльности пользователя обратно в Google Wallet.
Вы можете вернуть карту лояльности в Google Wallet, перейдя по ссылке, которая имеет следующую структуру.
https://pay.google.com/gp/v/save/{jwt_generated}
Безопасная длина URL-адреса — 2000 символов. Ваши ссылки не должны превышать этот лимит. Объекты, закодированные в JWT, должны быть небольшими и содержать только данные, относящиеся к конкретному пользователю. Постарайтесь хранить большую часть данных в классе объекта, создав его до создания JWT. Для более крупных объектов, не подпадающих под это ограничение, рассмотрите возможность сначала создать объект в API Google Wallet и отправлять в JWT только идентификатор объекта.
Типичный поток коммуникации
Схема взаимодействия пользователя, завершающего регистрацию или вход в систему, представлена на следующем изображении. Вы несёте ответственность за выполнение всех действий между вашим сервером.

Шаг 4: Запросите проверку и активацию
После завершения разработки и тестирования процессов регистрации/входа вам необходимо отправить запрос на проверку и полную активацию вашей реализации.
- Перейдите в консоль Google Pay и Wallet .
- Воспользуйтесь виджетом «Связаться со службой поддержки» .
- Сообщите службе поддержки о том, что вы завершили интеграцию программы лояльности.
После полной проверки вашей реализации, которая подтвердит корректность работы в сочетании с приложением Google Wallet, функция регистрации/входа в программу лояльности будет публично запущена для вашей программы лояльности.
Для обеспечения оптимального пользовательского опыта будут проводиться регулярные проверки реализации вашей регистрации/входа, чтобы гарантировать постоянное соответствие требованиям к функциям. В случае обнаружения несоответствий вы будете уведомлены, а функция входа/регистрации может быть отключена до устранения проблемы.
Часто задаваемые вопросы
Есть ли какие-либо требования к изображениям, используемым в моей программе лояльности? Да, ваши изображения должны быть размещены на
HTTPSсервере, иначе они не будут видны в Google Wallet.Существуют ли инструменты, упрощающие реализацию и отладку JWT? Да, такие платформы, как www.jwt.io, позволяют декодировать и отлаживать токены в процессе разработки, что позволяет проверять отправляемый контент. Обратите внимание, что Google не имеет никакого отношения к этим сторонним организациям и не рекомендует их напрямую.
Как правильно обрабатывать данные
SharedDataTypeзакодированные в Base64? Убедитесь, что на протяжении всего процесса используется кодировка UTF-8. Строка JSON сначала кодируется в UTF-8, а затем с помощью android.util.Base64 с параметрами NO_WRAP и URL_SAFE. Это соответствует разделу 4 RFC 3548 .