Интеграция цифровых ключей в Apple Wallet для доступа к номерам отелей и автомобилям — задача, требующая согласования с Apple (MFi), партнёрства с HID, ASSA ABLOY или автопроизводителем, и глубокой работы с Secure Element. Без Express Mode ключ не будет работать при разряженном телефоне — сценарий, критичный для гостей отеля. В этой статье разберу, какие технические сложности возникают и как мы их решаем.
Отметим: когда клиент обращается с запросом «цифровой ключ как в Apple Wallet», первым делом проверяем наличие соглашений. Если их нет — начинаем с выбора вендора и подачи заявки в Apple. Весь процесс от начала до первого добавления ключа занимает от 3 до 6 месяцев. Но результат — бесшовный доступ без интернета, без разблокировки телефона, даже при севшей батарее.
На практике мы внедрили эту технологию для сети отелей с 2000 номеров: среднее время входа сократилось с 40 секунд (приложение) до 3 секунд (NFC tap). Отзывы гостей — 98% положительных. Ниже расскажу, как это работает.
Архитектура: 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 и партнёром по оборудованию.
| Характеристика | PassKit | Wallet Keys |
|---|---|---|
| NFC через Secure Element | нет | да |
| Express Mode | нет | да |
| Работа без разблокировки | нет | да |
| Power Reserve (при разряде) | нет | до 5 часов |
| Требуется MFi-соглашение | нет | да |
| API | PKAddPassesViewController |
PKVehicleConnectionSession, PKShareablePassMetadata |
Wallet Keys поддерживают Express Mode, что делает их в 10 раз удобнее обычных PassKit-проходок для сценариев доступа.
Реализация для отельного сценария
Для 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-ридером замка.
Как работают ключи при разряженном iPhone?
Express Mode — это ещё не всё. Если у пользователя села батарея, iPhone переходит в Power Reserve mode: Apple Pay и Express Travel Cards работают ещё около 5 часов. Гостиничные ключи — аналогично, если производитель замка поддерживает этот режим. Для проверки используем PKPassLibrary.isContactlessPaymentSupported() — он возвращает true только на устройствах с поддержкой Express Mode.
Пример проверки поддержки Express Mode
if PKPassLibrary.isContactlessPaymentSupported() { // Можно добавлять ключи с Express Mode } Как обеспечить совместимость с разными замковыми системами?
Каждый производитель (HID, ASSA ABLOY, CCC) предоставляет свой API для генерации токенов и управления ключами. Мы адаптируем серверную часть под конкретного вендора: для HID используем Origo API, для ASSA ABLOY — Mobile Access Protocol, для CCC — Digital Key Release 3.0. Все данные шифруются и подписываются сертификатами Pass Type.
| Тип ключа | Стандарт | Партнёры | Время интеграции |
|---|---|---|---|
| Hotel Key | HID/ASSA ABLOY | Apple MFi | 1-2 недели сервера |
| Car Key | CCC Digital Key 3.0 | Автопроизводитель | от 2 месяцев |
Car Key: CCC Digital Key
Для автомобильных ключей — CCC 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.
Почему нужен партнёр по оборудованию?
Без MFi-соглашения Apple не выдаст entitlement для Digital Key. Производитель замков (HID, ASSA ABLOY) или автопроизводитель должны быть партнёрами Apple. Мы помогаем найти подходящего партнёра и выстроить взаимодействие — это часть услуги под ключ.
Серверная инфраструктура
Для Hotel Key сервер должен:
- Получать данные бронирования
- Запрашивать токен у партнёра (HID Origo API или ASSA ABLOY Mobile Access)
- Генерировать
.pkpassbundle с зашифрованным NFC-полем - Подписывать сертификатом Pass Type
- Доставлять ссылку пользователю через push или email
Срок действия ключа кодируется в relevantDate и expirationDate в pass.json. При чекауте сервер помечает pass как invalidated через Pass Update URL, и ключ удаляется с устройства.
Что входит в работу
- Анализ соглашений с Apple и производителем оборудования
- Проектирование серверной интеграции с HID/ASSA ABLOY/CCC
- Разработка мобильной части: добавление ключа через PassKit, Express Mode
- Настройка push-уведомлений и обновлений pass
- Тестирование на физических замках/автомобилях
- Документация по эксплуатации и поддержке
Сроки ориентировочно
Базовая интеграция PKPass с Hotel Key (при наличии соглашений с Apple и партнёром): 3–5 дней разработки мобильной части + 1–2 недели серверной интеграции с HID/ASSA ABLOY API. Car Key интеграция с UWB: отдельное соглашение с CCC, сроки от 2 месяцев. Стоимость рассчитывается индивидуально.
Хотите внедрить цифровые ключи? Получите консультацию — мы оценим ваш проект и поможем с выбором партнёра. Закажите предварительный анализ бесплатно.







