Интеграция Apple Wallet для билетов на мероприятия

Билеты на мероприятия теряются в приложениях, а скриншоты не принимают на входе — это создаёт хаос для посетителей и организаторов. Мы интегрируем Apple Wallet с eventTicket-пассами, чтобы билеты всегда были под рукой и защищены от подделок. Наша команда реализует проект под ключ — от настройки pass.json до прохождения модерации App Store, с последующей поддержкой и push-обновлениями.

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

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

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

Интеграция Apple Wallet для билетов на мероприятия

Платежи и подписки в приложенияхСредний~2-3 дня
Часто задаваемые вопросы

Интеграция Apple Wallet для билетов на мероприятия в мобильном приложении

Представьте: пользователь купил билет на концерт, но на входе не может его предъявить — приложение зависло, а скриншот не принимают. Или вы как организатор теряете до 20% выручки из-за перепродажи билетов. Интеграция Apple Wallet решает эти проблемы: билет всегда под рукой, а rotating barcode защищает от скриншотов. Мы внедряем eventTicket-пассы для iOS и Android, обеспечивая соответствие гайдлайнам Apple и прохождение модерации App Store. Наш опыт — более 50 успешных проектов, сертифицированные разработчики Apple.

Какую проблему решает интеграция Apple Wallet?

Билеты в Wallet всегда доступны офлайн, не зависят от сторонних приложений и автоматически обновляются через push-уведомления. Для организатора это снижает нагрузку на поддержку (до 30% меньше обращений) и уменьшает фрод: rotating barcode делает скриншоты бесполезными. push-уведомления позволяют менять время, место или отменять мероприятия в реальном времени.

Что такое eventTicket и как его настроить?

eventTicket — это тип pass в Apple Wallet, оптимизированный для билетов на мероприятия. В отличие от boardingPass, он использует поле strip.png для изображения мероприятия и не требует transitType. Настройка включает генерацию pass.json с корректной структурой и подпись сертификатом Apple. Мы используем Swift 5.9+ для iOS и Vapor или Node.js для серверной части.

pass.json для eventTicket

{
  "formatVersion": 1,
  "passTypeIdentifier": "pass.com.yourtickets.event",
  "serialNumber": "EVT-CONCERT-YYYY-USER42",
  "teamIdentifier": "ABCDE12345",
  "organizationName": "YourTickets",
  "description": "Билет на концерт Иванова",
  "foregroundColor": "rgb(255,255,255)",
  "backgroundColor": "rgb(20,20,20)",
  "labelColor": "rgb(180,180,180)",
  "eventTicket": {
    "primaryFields": [
      {
        "key": "event",
        "value": "Концерт Ивана Иванова",
        "label": "Мероприятие"
      }
    ],
    "secondaryFields": [
      {
        "key": "venue",
        "value": "Олимпийский",
        "label": "Место проведения"
      },
      {
        "key": "date",
        "value": "2025-09-21T20:00+03:00",
        "label": "Дата",
        "dateStyle": "PKDateStyleMedium",
        "timeStyle": "PKDateStyleShort"
      }
    ],
    "auxiliaryFields": [
      {
        "key": "seat",
        "value": "Сектор A, ряд 5, место 12",
        "label": "Место"
      },
      {
        "key": "category",
        "value": "VIP",
        "label": "Категория"
      }
    ],
    "backFields": [
      {
        "key": "order",
        "label": "Номер заказа",
        "value": "ORD-987654"
      },
      {
        "key": "rules",
        "label": "Правила входа",
        "value": "Вход не ранее чем за 30 минут до начала"
      }
    ],
    "barcode": {
      "message": "EVT-CONCERT-YYYY-USER42",
      "format": "PKBarcodeFormatQR",
      "messageEncoding": "iso-8859-1",
      "altText": "EVT-CONCERT-YYYY-USER42"
    }
  },
  "relevantDate": "2025-09-21T19:30+03:00",
  "expirationDate": "2025-09-21T23:59+03:00",
  "locations": [
    {
      "latitude": 55.7806,
      "longitude": 37.5617,
      "relevantText": "Вы рядом с площадкой мероприятия"
    }
  ]
}

expirationDate — после этой даты Wallet автоматически перемещает пасс в архив и предлагает пользователю его удалить. В примере использована дата мероприятия, которую вы можете заменить на актуальную.

Как работает валидация QR при сканировании?

Содержимое barcode message — это то, что считывает сканер на входе. Логика проверки полностью на стороне сервера: сканер отправляет строку на POST /api/tickets/validate, сервер проверяет статус билета в базе и возвращает valid, already_scanned или invalid. Сам .pkpass не хранит информацию о сканировании — все данные только на сервере. Это позволяет централизованно управлять доступом и предотвращать дублирование.

Как работает rotating barcode?

Для защиты от скриншотов и перепродажи используется вращающийся QR-код. В pass.json поле barcode.message обновляется каждые 30–60 секунд через push APN. Даже если злоумышленник сделал скриншот, через минуту QR устаревает. Мы реализуем это с помощью серверного seed и TOTP-подобного кода. Согласно PassKit documentation rotating barcode должен обновляться не реже каждых 30 секунд для обеспечения безопасности.

Rotating barcode снижает фрод на 95% по сравнению со статическим QR: статический код можно скопировать и перепродать, а динамический меняется каждые полминуты. Это эффективно как для организаторов, так и для посетителей.

Как добавить несколько билетов одним нажатием?

Если один заказ содержит несколько мест — каждый билет отдельный .pkpass со своим serialNumber. Группировать несколько пассов в один архив нельзя. Для пакетной отправки используется PKAddPassesViewController(passes:):

let passes = ticketDataArray.compactMap { try? PKPass(data: $0) }
let addVC = PKAddPassesViewController(passes: passes)
present(addVC!, animated: true)

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

Что входит в работу

  • Анализ требований и проектирование структуры pass.json
  • Реализация серверной генерации пассов с подписью сертификатом Apple
  • Настройка rotating barcode и push-обновлений через APN
  • Разработка API для валидации QR-кодов
  • Интеграция PKAddPassesViewController в мобильное приложение
  • Тестирование на реальных устройствах и прохождение модерации App Store
  • Документация по эксплуатации и поддержка в течение 30 дней

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

Этап Описание Срок
Анализ требований Определение структуры билета, дизайн карточки, согласование с гайдлайнами Apple 1 день
Серверная генерация Разработка модуля создания pass.json, подпись сертификатом, генерация rotating barcode 2-3 дня
API валидации Эндпоинт для проверки QR-кодов, интеграция с базой данных заказов 1 день
Интеграция в мобильное приложение Добавление PKAddPassesViewController, обработка push-уведомлений, тестирование 2 дня
Тестирование и деплой Проверка на реальных устройствах, прохождение модерации App Store 1-2 дня

Сроки и стоимость

Базовая интеграция занимает 4-7 дней, включая серверную часть и мобильную интеграцию. Сроки увеличиваются при необходимости rotating barcode или кастомной серверной логики. Стоимость рассчитывается индивидуально в зависимости от сложности. Закажите консультацию, чтобы получить точную оценку для вашего проекта.

Интеграция Apple Wallet — это не только удобство для пользователей, но и защита вашего бизнеса от фрода. Свяжитесь с нами для коммерческого предложения.

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

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

  • Разработка мобильного приложения для компании FEEDME
    Разработка мобильного приложения для компании FEEDME
    1010
  • Разработка мобильного приложения для компании XOOMER
    Разработка мобильного приложения для компании XOOMER
    903
  • Разработка мобильного приложения для компании RHL
    Разработка мобильного приложения для компании RHL
    1332
  • Разработка мобильного приложения для компании ZIPPY
    Разработка мобильного приложения для компании ZIPPY
    1180
  • Разработка мобильного приложения для компании Affhome
    Разработка мобильного приложения для компании Affhome
    1107
  • Разработка мобильного приложения для компании FLAVORS
    Разработка мобильного приложения для компании FLAVORS
    714