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

Модуль Koshelek TOTP

Общие сведения

Модуль Koshelek TOTP реализует механизм аутентификации (проверки подлинности) мобильных карт лояльности при их предъявлении на кассе с экрана смартфона в приложении «Кошелёк» при транзакции оплаты через Koshelek Pay.

Назначение модуля и механизм аутентификации

Для аутентификации карты в системе ритейлера, а также для идентификации возможности осуществления транзакции с помощью Koshelek Pay используется механизм Time-Based One Time Password (TOTP):

  1. При предъявлении карты Кошелёк формирует одноразовый временный пароль на основе префикса и номера карты.
  2. Временный пароль выводится на экран Кошелька вместе с номером карты в формате штрихкода (ШК).
  3. Кассовое ПО считывает ШК, который затем проверяется в инфраструктуре ритейлера.

Если ранее ритейлер взаимодействовал с Кошельком для аутентификации карт без применения оплаты с помощью Koshelek Pay, модуль Koshelek TOTP обеспечивает обратную совместимость для карт лояльности, для которых доступна только аутентификация (проверка безопасного предъявления) без функциональности Koshelek Pay (например, для случая, если ШК карты предъявляется из устаревшей версии приложения).

Также модуль осуществляет формирование секретного токена, который ритейлер передает на сторону Кошелька вместе с запросом формирования пречека. Для осуществления оплаты с помощью Koshelek Pay полученный токен должен быть действителен.

Таким образом, модуль решает следующие задачи:

  • Парсинг штрихкода карты лояльности, предъявляемой через Кошелёк.
  • Аутентификация пользователя в системе ритейлера.
  • Извлечение идентификатора лояльности.
  • Извлечение идентификатора сессии оплаты.
  • Контроль целостности и аутентичности запроса на оплату.

Структура штрихкода TOTP, формируемого приложением «Кошелёк» для оплаты с помощью Кошелёк Pay:

Структура штрихкода TOTP

Если ТСП использует одномерные штрихкоды (например, формата code128), то максимальное значение любого штрихкода будет складываться из следующих данных:

  • prefix — префикс, не более 2-х символов (допустимы буквы латинского алфавита и цифры);
  • cardNumber — номер карты, не более 13 цифр при использовании префикса, или 16 цифр без использования префикса;
  • cardSession — код сессии предъявления карты, генерируется сервером, по умолчанию содержит 6 символов;
  • delimeter — разделитель, отделяет парольную часть TOTP;
  • TOTP password — парольная часть TOTP, 3 цифры (на основе конфигурации TOTP-профиля партнера).

Если длина номера карты и префикса (вместе) превышает указанные лимиты, ТСП необходимо использовать двумерные штрихкоды, т.к. одномерный штрихкод бóльшей длины не сможет быть корректно отображен на экранах смартфонов для его считывания сканером.