Интеграция Apple Wallet для ключей от автомобиля/гостиницы в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Интеграция Apple Wallet для ключей от автомобиля/гостиницы в мобильном приложении
Сложная
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Интеграция Apple Wallet для ключей от автомобиля/гостиницы в мобильном приложении

Apple Wallet в режиме цифровых ключей — не просто красивая карточка. Это связка NFC Secure Element с Car Connectivity Consortium (CCC) Digital Key стандартом для автомобилей, или ASSA ABLOY/HID протоколом для гостиничных замков. И вся эта связка требует специального Apple MFi-соглашения, которое нельзя получить в одиночку — нужен партнёр со стороны производителя замка или автомобиля.

Архитектура: PassKit vs Wallet Keys

Критично разделять два разных сценария, которые часто путают.

PassKit-проходки (PKPass) — обычные карточки в Wallet: посадочные талоны, купоны, карты лояльности. Их может добавлять любой разработчик с сертификатом Apple. Никакого NFC-доступа к Secure Element нет.

Apple Wallet Keys — цифровые ключи для авто и отелей. Используют NFC через Secure Element, Express Mode (работает без разблокировки телефона, даже при разряженном iPhone). Требуют специального entitlement com.apple.developer.passkit.pass-type.digital-key, который Apple выдаёт только через партнёрскую программу с производителем оборудования.

Если заказчик хочет «цифровой ключ как в Apple Wallet» — первый вопрос: есть ли у них соглашение с Apple и партнёром по оборудованию?

Реализация для отельного сценария

Для Hotel Key Apple использует стандарт, совместимый с ASSA ABLOY Mobile Access и HID Mobile Access. Мобильное приложение добавляет ключ через PKAddPassesViewController:

import PassKit

func addHotelKey(passData: Data) {
    guard let pass = try? PKPass(data: passData) else { return }

    if PKAddPassesViewController.canAddPasses() {
        let vc = PKAddPassesViewController(pass: pass)
        vc.delegate = self
        present(vc, animated: true)
    }
}

// Серверная сторона генерирует .pkpass bundle:
// manifest.json + signature + pass.json + фоновое изображение
// Подписывается сертификатом Pass Type Certificate

pass.json для Hotel Key содержит специальные поля, определяемые партнёром HID/ASSA ABLOY:

{
  "passTypeIdentifier": "pass.com.hotel.room-key",
  "serialNumber": "booking-12345-room-401",
  "teamIdentifier": "XXXXXXXXXX",
  "nfc": [
    {
      "message": "ENCRYPTED_ROOM_TOKEN",
      "encryptionScheme": "EAP"
    }
  ]
}

nfc.message шифруется ключами, предоставленными партнёром замковой системы. Мобильное приложение не расшифровывает — это делает Secure Element при контакте с NFC-ридером замка.

Express Mode

Самое важное для гостиничного сценария: пользователь не должен доставать телефон из кармана. PKPassLibrary.isContactlessPaymentSupported() — проверка поддержки Express Mode. Для работы без разблокировки ключ должен быть добавлен через правильный Pass Type с соответствующим entitlement.

На iPhone с разряженной батареей (Power Reserve mode) Apple Pay и Express Travel Cards работают ~5 часов. Hotel Keys — аналогично, если производитель замка поддерживает этот режим.

Car Key: CCC Digital Key

Для автомобильных ключей — CCC (Car Connectivity Consortium) Digital Key Release 3.0. Поддерживается BMW, Hyundai, Genesis, KIA, Mini. Протокол использует UWB для точного позиционирования (Hands-Free unlock при приближении) и NFC как fallback.

Мобильное приложение автопроизводителя добавляет Car Key через приглашение от транспортного средства (Vehicle Invitation):

// CarPlay + PassKit интеграция
func handleVehicleInvitation(_ invitationToken: String) {
    PKVehicleConnectionSession.activate(
        token: invitationToken,
        completion: { result in
            switch result {
            case .success(let pass):
                // Ключ добавлен в Wallet
                break
            case .failure(let error):
                // PKError.vehicleConnectionNotSupported — авто не поддерживает
                break
            }
        }
    )
}

Sharing ключей — передача через iMessage с ограниченными правами (только открытие без управления). Через PKShareablePassMetadata.

Серверная инфраструктура

Для Hotel Key — сервер должен:

  1. Получать данные бронирования
  2. Запрашивать токен у партнёра (HID Origo API или ASSA ABLOY Mobile Access)
  3. Генерировать .pkpass bundle с зашифрованным NFC-полем
  4. Подписывать сертификатом Pass Type
  5. Доставлять ссылку пользователю через push или email

Срок действия ключа кодируется в relevantDate и expirationDate в pass.json. При чекауте — сервер помечает pass как invalidated через Pass Update URL, и ключ удаляется с устройства.

Сроки

Базовая интеграция PKPass с Hotel Key (при наличии соглашений с Apple и партнёром): 3–5 дней разработки мобильной части + 1–2 недели серверной интеграции с HID/ASSA ABLOY API. Car Key интеграция с UWB: отдельное соглашение с CCC, сроки от 2 месяцев. Стоимость рассчитывается индивидуально.