Что делает раздел
Раздел отвечает за публичную выдачу брендированных карт Wallet: по прямой ссылке клиент (или сотрудник компании) получает карту либо файлом для Apple Wallet, либо ссылкой для сохранения в Google Wallet. Карты бывают двух видов: бонусная карта клиента и карта конкретного заказа аренды. Есть четыре публичных адреса выдачи:
Во всех адресах объект указывается по числовому идентификатору в пути (идентификатор бонусной карты или идентификатор заказа).
Компания определяется не в самом разделе, а раньше — по домену запроса или служебному заголовку компании. Раздел просто работает с «текущей компанией», уже выбранной для запроса, и загружает бонусную карту либо заказ для этой компании.
Как выдаётся карта Apple Wallet
Общий порядок
- Определяется текущая компания.
- По идентификатору из ссылки находится объект — бонусная карта или заказ — в пределах этой компании.
- Если объект не найден — возвращается ошибка «не найдено».
- Находится или создаётся Пропуск (карта Wallet) для этой пары «компания + объект».
- Собирается файл карты и отдаётся на скачивание.
Поиск или создание Пропуска
Ключевой шаг — гарантировать один Пропуск на объект внутри компании. Система ищет уже существующий Пропуск по совокупности: Компания, Тип пропуска (бонусная карта или заказ), Идентификатор связанного объекта и Идентификатор типа пропуска (берётся из настроек приложения). Если такой Пропуск есть — он переиспользуется; если нет — создаётся новый, и ему присваивается свежий уникальный Серийный номер (случайное шестнадцатеричное значение).Токен авторизации новому Пропуску не задаётся в этом разделе — он проставляется автоматически самим Пропуском при создании (случайное шестнадцатеричное значение). Этот токен потом используется веб-сервисом Apple для проверки запросов от устройства.
Формирование файла и заголовки скачивания
После получения Пропуска собирается сам файл карты, и ответ оформляется так, чтобы браузер/устройство восприняли его как загружаемую карту Wallet:- тип содержимого — карта Apple Wallet;
- заголовок вложения с именем файла;
- заголовок «Последнее изменение», равный времени поля Обновлён у Пропуска.
Как выдаётся ссылка Google Wallet
Для Google Wallet файл не собирается и Пропуск в системе не создаётся. Раздел возвращает JSON с единственным полем — ссылкой сохранения. Переход по этой ссылке добавляет карту в Google Wallet на стороне Google.Важное отличие от Apple: при выдаче через Google запись Пропуска (карты Wallet) в базе не заводится. Соответственно фоновые push-обновления через Apple к таким картам не относятся — они касаются только выпущенных Apple-пропусков.
Проверки перед выдачей
Правила «когда отдать карту, а когда ошибку» немного различаются по видам:Как это используется
Эти адреса — точка входа для клиента: обычно ссылку на выдачу карты клиент получает в сообщении или на веб-странице компании, открывает её, и карта попадает в его Apple или Google Wallet. Так как выдача публичная (без входа в систему), доступ к конкретной карте определяется знанием адреса и идентификатора объекта в пределах домена компании. Выпущенные Apple-пропуски дальше живут своей жизнью: устройство регистрируется в веб-сервисе Apple, а изменения заказа автоматически помечают соответствующий Пропуск обновлённым и запускают фоновую рассылку push-обновлений. Эти механизмы описаны в других разделах модуля.Связанные страницы
Глоссарий: Брендированная выдача пропусков
Полный перечень полей и понятий, задействованных при публичной выдаче карт.
Карты в Apple Wallet и Google Wallet
Обзор раздела: какие бывают карты, как их получает клиент и как они обновляются.
Проблемы и логические ошибки
Сводка известных проблем и логических ошибок всего модуля кошельков.
Что хранится о карте
Какие сведения система хранит о выпущенной карте и о телефонах, подписанных на обновления.
Оформление карты Apple
Что клиент видит на карте: поля, QR-код, фирменные цвета и логотип.
Карта в Google Wallet
Как формируется карта и ссылка сохранения для Google Wallet.
Как телефон получает свежую карту
Что происходит между телефоном клиента и системой, когда карта обновляется.
Уведомления об обновлении карты
Бесшумные уведомления, которые заставляют телефон перекачать карту.
Что запускает обновление
Какие изменения заказа приводят к обновлению карты у клиента.