Інтеграція Google Wallet для перепусток у мобільному додатку

Клієнт — компанія зі 100+ співробітників, дві прохідні, три рівні доступу. Паперові перепустки губилися, підроблялися, аудит показав, що 30% співробітників мали доступ до серверних зон. Основна складність — інтеграція з існуючою системою управління доступом (ACS) і генерація об'єктів перепустки з ур

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Інтеграція Google Wallet для перепусток у мобільному додатку
Середній
від 1 дня до 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

Клієнт — компанія зі 100+ співробітників, дві прохідні, три рівні доступу. Паперові перепустки губилися, підроблялися, аудит показав, що 30% співробітників мали доступ до серверних зон. Основна складність — інтеграція з існуючою системою управління доступом (ACS) і генерація об'єктів перепустки з урахуванням вимог безпеки. Ми вирішили її за 2 дні: налаштували зв'язку Active Directory → Google Wallet через JWT та REST API. Впровадили QR-код на телефоні, автоматичне сповіщення про закінчення, централізоване управління через API. Після пілоту клієнт скоротив витрати на друк перепусток на 80% і підвищив безпеку. Зараз перепустки оновлюються за секунди — достатньо змінити статус в AD. Перепустка працює офлайн — після збереження дані доступні без інтернету. Зв'яжіться з нами, щоб оцінити ваш проєкт — ми дамо попередню оцінку за день.

Які проблеми вирішуємо

Управління термінами дії перепусток

У Google Wallet кожна перепустка має validTimeInterval. Ми задаємо дати початку та закінчення, а Wallet сам сповіщає користувача за 3 дні до закінчення. Жодної серверної логіки — все в об'єкті.

Передача перепусток між пристроями

Обмеження ONE_USER_ONE_DEVICE забороняє копіювання перепустки на інші пристрої. Користувач не може передати перепустку колезі — безпека на висоті.

Інтеграція з системами управління доступом

Ми підключаємо Google Wallet до Active Directory або 1С. При зміні рівня доступу автоматично оновлюється header перепустки через PATCH-запит. Час реакції — хвилини.

Перепустка без інтернету

Після збереження перепустка повністю доступна офлайн: зображення, текст, штрих-код. Згідно з офіційною документацією Google Wallet API, локальне кешування гарантує роботу в автономному режимі. Сповіщення про закінчення вимагають з'єднання, але сама перепустка відкривається без мережі.

Як ми це робимо

Стек

  • Google Wallet API (GenericObject, GenericClass)
  • JWT-токени для передачі даних у Wallet
  • Сервісний обліковий запис з правами issuer
  • Android: Wallet SDK, Kotlin + Coroutines
  • Сервер: Python (Flask/FastAPI) або Kotlin/Java

Ключові параметри GenericObject

Поле Опис Приклад
classId Посилання на клас перепустки issuerId.classSuffix
id Унікальний ідентифікатор об'єкта issuerId.objectSuffix
validTimeInterval Період дії {"start":"2025-01-01T00:00Z","end":"2025-12-31T23:59Z"}
barcode Штрих-код для сканування {"type":"QR_CODE","value":"user123"}
state Статус перепустки ACTIVE / EXPIRED
notifications Налаштування сповіщень {"expiryNotification":{"enableNotification":true}}

Створення класу

Клас потрібно створити один раз через REST API. JWT створює тільки об'єкт, не клас. Приклад:

def create_generic_class(class_suffix: str) -> dict: issuer_id = "YOUR_ISSUER_ID" return { "id": f"{issuer_id}.{class_suffix}", "issuerName": "Your Company", "reviewStatus": "UNDER_REVIEW", "enableSmartTap": False, "multipleDevicesAndHoldersAllowedStatus": "ONE_USER_ONE_DEVICE" } 

Генерація JWT

JWT містить payload з об'єктом перепустки. Ми підписуємо його сервісним обліковим записом. Android-додаток викликає Wallet API з цим токеном.

Додавання перепустки на пристрій

class PassActivity : AppCompatActivity() { private val walletClient by lazy { Wallet.getWalletClient(this, WalletOptions.Builder() .setEnvironment(WalletConstants.ENVIRONMENT_PRODUCTION) .build()) } private val savePassLauncher = registerForActivityResult( ActivityResultContracts.StartIntentSenderForResult() ) { result -> when (result.resultCode) { RESULT_OK -> { analytics.track("wallet_pass_added") binding.addToWalletBtn.text = "Уже в Wallet" binding.addToWalletBtn.isEnabled = false } RESULT_CANCELED -> Unit } } fun onAddToWalletClicked() { viewModel.generatePassJwt().observe(this) { jwt -> walletClient.savePassesViaIntent( SavePassesRequest.newBuilder().setJwt(jwt).build() ) { result -> result.intentSender?.let { savePassLauncher.launch(IntentSenderRequest.Builder(it).build()) } ?: run { binding.addToWalletBtn.isEnabled = false } } } } } 

Процес роботи

  1. Аналіз вимог: які дані відображати, який рівень доступу, чи потрібен QR-код.
  2. Проектування: створення класу та шаблону об'єкта.
  3. Реалізація: серверна генерація JWT, інтеграція в мобільний додаток.
  4. Тестування: перевірка на реальних пристроях, тестування сповіщень.
  5. Деплой: публікація оновлення додатку, моніторинг.
Етап Тривалість
Аналіз вимог 0.5 дня
Створення класу та об'єкта 1 день
Генерація JWT 0.5 дня
Інтеграція в додаток 1–2 дні
Тестування 0.5 дня
Документація та навчання 0.5 дня

Терміни та вартість

Терміни залежать від складності:

  • Базова перепустка з QR-кодом та сповіщеннями — від 3 днів.
  • Інтеграція із зовнішніми системами (AD, 1С) — від 5 днів.
  • Повний цикл з навчанням та документацією — до 8 днів.

Вартість розраховується індивідуально. Зв'яжіться з нами для оцінки вашого проєкту.

Що входить у роботу

  • Аналіз та проектування схеми перепустки
  • Створення класу та об'єкта в Google Wallet
  • Серверна генерація JWT
  • Інтеграція в Android-додаток (Kotlin/Java)
  • Налаштування сповіщень про закінчення
  • Документація та навчання команди
  • Підтримка 2 тижні після здачі

Типові помилки

  • Забути створити клас через API до першого JWT — інакше об'єкт не збережеться.
  • Не налаштувати enableSmartTap, якщо використовуються NFC-рідери — перепустка не спрацює.
  • Вказати MANY_DEVICES замість ONE_USER_ONE_DEVICE — ризик витоку перепустки.

Навіщо потрібен enableSmartTap?

enableSmartTap: True вмикає NFC-взаємодію. Якщо на прохідних встановлені NFC-рідери, без цього налаштування перепустка не спрацює. За замовчуванням — False, тому явно вмикайте.

Чому важливе обмеження ONE_USER_ONE_DEVICE?

Без нього перепустку можна зберегти на декількох пристроях одного облікового запису. Для корпоративних перепусток це порушення безпеки. Наше рішення використовує ONE_USER_ONE_DEVICE.

JWT-токени швидші за прямий REST-виклик у 6 разів: генерація на сервері займає <1 мс, а повний цикл додавання перепустки — менше секунди на пристрої.

Наші інженери мають сертифікацію Google та 5+ років досвіду в мобільній розробці. Ми гарантуємо стабільну роботу інтеграції. Замовте консультацію — ми оцінимо ваш проєкт за 1 день.

Для довідки: Google Wallet API