Интеграция Google Wallet с картами лояльности Android: под ключ

Как добавить карту лояльности в Google Wallet из Android-приложения? Пользователи хотят носить карты лояльности в телефоне. Google Wallet — естественное место на Android, установленное на 1,5 млрд устройств. Но интеграция сложнее, чем простая кнопка «Добавить в Wallet»: нужно зарегистрировать изд

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1734 услуг
Интеграция Google Wallet с картами лояльности Android: под ключ
Средний
~2-3 дня

Наши компетенции:

Часто задаваемые вопросы

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    896
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    1003
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    597

Как добавить карту лояльности в Google Wallet из Android-приложения?

Пользователи хотят носить карты лояльности в телефоне. Google Wallet — естественное место на Android, установленное на 1,5 млрд устройств. Но интеграция сложнее, чем простая кнопка «Добавить в Wallet»: нужно зарегистрировать издателя, создать класс карты, генерировать JWT и реализовать клиентский API. Мы провели более 10 интеграций с Google Wallet и знаем все подводные камни. Предлагаем реализацию под ключ — от консоли до кода, с гарантией прохождения ревью Google за 1-3 дня.

Например, для сети кофеен CoffeeBoom мы реализовали интеграцию Google Wallet с бонусной программой, создав LoyaltyClass с персонализированным дизайном и автоматической синхронизацией баллов через CRM. Проект занял 3 дня на разработку и 2 дня на ревью от Google. Интеграция Google Wallet позволяет пользователям всегда иметь карту лояльности под рукой, увеличивает вовлечённость на 25–40% и снижает затраты на выпуск пластика на 60–80%. Однако для стабильной работы требуется грамотная настройка JWT, обработка ошибок и соблюдение правил Google.

Официальная документация: Google Wallet Loyalty API

Этапы интеграции Google Wallet

Интеграция проходит в несколько этапов:

  1. Создание аккаунта издателя в Google Pay & Wallet Console.
  2. Создание LoyaltyClass — шаблона карты с логотипом, цветами и полями.
  3. Генерация LoyaltyObject для каждого пользователя на сервере.
  4. Подготовка JWT для передачи на клиент.
  5. Реализация PayClient.savePasses в Android-приложении.
  6. Обработка результата добавления и обновления данных.

Что нужно подготовить перед интеграцией?

Перед написанием кода — три шага в консоли:

  1. Создать аккаунт издателя (Issuer Account)
  2. Создать LoyaltyClass — шаблон карты
  3. Получить service account credentials для серверных вызовов

issuerId — числовой идентификатор издателя, например 3388000000022142. classId формируется как {issuerId}.{classPostfix}, например 3388000000022142.loyalty_main.

Вот минимальные поля для LoyaltyClass:

Поле Тип Пример
id string 3388000000022142.loyalty_main
issuerName string YourShop
programName localized Программа лояльности YourShop
programLogo Image https://yourshop.com/logo.png
hexBackgroundColor string #1E5AC8
countryCode string RU

Как сгенерировать JWT для каждого пользователя?

Каждый пользователь — отдельный LoyaltyObject. Мы создаём его на сервере и упаковываем в JWT:

import jwt import time loyalty_object = { "id": f"3388000000022142.user_{user_id}", "classId": "3388000000022142.loyalty_main", "state": "ACTIVE", "loyaltyPoints": { "label": "Баллы", "balance": { "int": user_points } }, "barcode": { "type": "QR_CODE", "value": f"USER-{user_id}", "alternateText": f"USER-{user_id}" }, "textModulesData": [ { "header": "Уровень", "body": user_tier, "id": "tier" } ] } # Создаём объект через API service.loyaltyobject().insert(body=loyalty_object).execute() # Генерируем JWT для передачи на клиент payload = { "iss": service_account_email, "aud": "google", "typ": "savetowallet", "iat": int(time.time()), "payload": { "loyaltyObjects": [{ "id": loyalty_object["id"] }] } } token = jwt.encode(payload, private_key, algorithm="RS256") 

JWT передаётся в мобильное приложение. Срок жизни JWT — максимум 1 час, поэтому генерируйте его непосредственно перед отправкой.

Как добавить карту в Android через PayClient?

import com.google.android.gms.pay.Pay import com.google.android.gms.pay.PayApiAvailabilityStatus import com.google.android.gms.pay.PayClient private lateinit var walletClient: PayClient override fun onCreate(savedInstanceState: Bundle?) { walletClient = Pay.getClient(this) checkWalletAvailability() } private fun checkWalletAvailability() { walletClient .getPayApiAvailabilityStatus(PayClient.RequestType.SAVE_PASSES) .addOnSuccessListener { status -> if (status == PayApiAvailabilityStatus.AVAILABLE) { showAddToWalletButton() } } } private fun saveToWallet(jwt: String) { walletClient.savePasses(jwt, this, ADD_TO_GOOGLE_WALLET_REQUEST_CODE) } override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) { if (requestCode == ADD_TO_GOOGLE_WALLET_REQUEST_CODE) { when (resultCode) { RESULT_OK -> handleSuccess() RESULT_CANCELED -> handleCanceled() PayClient.SavePassesResult.SAVE_ERROR -> data?.let { handleError(it.getStringExtra(PayClient.EXTRA_API_ERROR_MESSAGE)) } } } } 

PayClient.RequestType.SAVE_PASSES проверяет, что Google Wallet установлен и работает. На устройствах без GMS (Huawei) Google Wallet недоступен — предусмотрите fallback.

Как обновить данные карты после выдачи?

Изменить баланс баллов — PATCH-запрос на существующий объект:

patch_body = { "loyaltyPoints": { "balance": { "int": new_points_value } } } service.loyaltyobject().patch( resourceId=f"3388000000022142.user_{user_id}", body=patch_body ).execute() 

Google Wallet синхронизирует изменения на устройстве в течение 2-5 минут. Push-уведомлений отправлять не нужно — система сама обновляет карту.

Google Wallet или PassKit: что выбрать?

Критерий Google Wallet PassKit (iOS)
Формат REST API, JSON PKPass Archive
Время разработки 2-3 дня 4-5 дней
Офлайн-работа Требуется сеть для синхронизации Полная офлайн-поддержка
Обновление данных Автоматическое через API Требуется push-уведомление

Google Wallet не требует файлового архива — всё через REST API. Это ускоряет разработку в 2 раза и упрощает поддержку. Однако на iOS PassKit быстрее работает офлайн.

Что входит в нашу работу?

  • Серверная часть: создание LoyaltyClass, генерация LoyaltyObject и JWT, API для обновления данных
  • Клиентская часть: интеграция PayClient в Android-приложение, обработка результата добавления
  • Тестирование: проверка на устройствах с разными версиями Android, включая эмуляцию Google Wallet
  • Документация: описание всех эндпоинтов и инструкция для разработчика
  • Поддержка после запуска: помощь в прохождении ревью Google, мониторинг ошибок

Какие ошибки чаще всего допускают при интеграции?

  • Неверный формат classId: должен быть {issuerId}.{postfix}, иначе Google отклоняет запрос.
  • JWT с истёкшим сроком: время жизни не должно превышать 1 час, иначе клиент получит ошибку.
  • Отсутствие service account: без корректных credentials API не авторизует запросы.
  • Игнорирование reviewStatus: пока класс в статусе UNDER_REVIEW, карты нельзя добавлять на реальные устройства.

Убедитесь, что все поля заполнены, а серверный скрипт работает с правильным issuerId.

Сроки

2–3 дня: создание LoyaltyClass, серверная генерация объектов и JWT, интеграция PayClient в Android-приложение. Плюс 1–3 дня на ревью класса от Google. Стоимость рассчитывается индивидуально. Закажите интеграцию под ключ — мы оценим ваш проект и назовём сроки.

Наш опыт — 5+ лет в мобильной разработке, более 10 интеграций с Google Wallet, сотни успешно добавленных карт. Гарантируем правильную настройку с первого раза и прохождение ревью. Свяжитесь с нами, и мы подберём оптимальное решение для вашего бизнеса.