Перейти к содержанию

Карта участника в мобильном кошельке

Клиент может добавить карту участника программы лояльности в Apple Wallet или Google Кошелёк — тогда её не нужно искать в приложении: карта открывается с экрана блокировки телефона, рядом с банковскими картами.

В редакции 26.3.0 функция не подписывает карту

Выпуск карты в мобильный кошелёк выключен по умолчанию (loyalty.wallet.enabled=false). Даже при включении модуль в этой редакции отдаёт карту неподписанной заглушкой — точки выпуска для Apple и Google подключены, но реальный адаптер подписи (сертификат Apple, ключ сервисного аккаунта Google) не поставляется: устройство такую карту не примет. Рабочая подпись возможна только через собственную интеграцию заказчика (замена адаптера подписи), встроенного экрана настройки сертификата в этой версии нет. Раздел ниже описывает целевое поведение функции.

Что видит клиент

Кнопки «Добавить в Apple Wallet» и «Добавить в Google Кошелёк» расположены прямо под картой участника на главном экране личного кабинета. Обе кнопки показываются одновременно (кошелёк одной экосистемы нередко встречается на устройстве другой) и только когда карта клиента активна — для заблокированной карты кнопок нет: карта, выпущенная сейчас, пережила бы блокировку и предъявлялась бы на кассе как действующая.

Содержимое карты в кошельке — то же самое, что клиент видит на главном экране кабинета:

Поле карты Источник
Штрихкод (QR) Идентификатор участника — тот же, что сканируется на кассе с экрана кабинета
Баланс Доступные баллы, в баллах, не в минорных единицах
Уровень Название текущего уровня (тира), если участник в программе уровней
Имя участника Из профиля клиента
Дата вступления Дата регистрации участника — в Apple Wallet поле «С нами с»; дата показывается в часовом поясе программы

Повторное нажатие «Добавить» обновляет уже добавленную карту, а не создаёт вторую: серийный номер паспорта — это идентификатор карты, привязанный к клиенту.

Карта не обновляется сама

Карта — снимок данных на момент выпуска. Изменившийся баланс попадёт в кошелёк только при повторном нажатии «Добавить» в кабинете — автоматической синхронизации (push-обновлений) нет.

Apple Wallet

Кнопка скачивает пакет .pkpass и передаёт его системе; при настоящей подписи карта появляется в приложении Wallet. В редакции 26.3.0 пакет собирается заглушкой без подписи (признак X-Loyalty-Pass-Signed: false в ответе) — устройство его не примет.

Google Кошелёк

Кнопка открывает ссылку сохранения карты в Google Кошелёк. В редакции 26.3.0 объект карты собирается без настоящей подписи сервисного аккаунта — ссылку Google не примет как рабочую.

Как выпускается и обновляется

Оба формата собираются из одной и той же витрины кабинета (overview) — карта в кошельке и карта на экране кабинета не могут разойтись, потому что берут данные из одного источника.

flowchart LR
    C["Клиент нажимает «Добавить в кошелёк»"] --> W["GET /v1/b2c/me/wallet/apple или /google"]
    W --> D["Витрина кабинета клиента"]
    D --> P["Сборка пакета/объекта карты"]
    P --> S{"Подпись настроена?"}
    S -->|да| OK["Карта добавлена в кошелёк"]
    S -->|нет| FAIL["Признак «не подписано» — карта не отдаётся как рабочая"]

Идентификатор участника берётся из токена клиента, как и весь остальной личный кабинет — выпустить чужую карту нельзя. Участник без открытого бонусного счёта тоже получает карту — с нулевым балансом, а не отказом: иначе карту нельзя было бы добавить в кошелёк до первой покупки, то есть ровно тогда, когда она нужнее всего.

Настройка

Параметры включения выпуска (loyalty.wallet.enabled и прочие) описаны для администраторов в разделе Конфигурация. Готового способа подключить настоящий сертификат Apple или ключ Google в этой редакции нет — рабочая подпись требует собственной интеграции на стороне заказчика.

См. также