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

Архитектура сервиса

Warning

Сервис выведен из эксплуатации. Вместо него следует использовать модуль Koshelek TOTP.

Принципы работы TOTP Service


Механизм аутентификации

Для аутентификации карты в системе эмитента используется механизм Time-Based One Time Password (TOTP): при предъявлении карты Кошелёк формирует одноразовый временный пароль на основе номера карты. Временный пароль выводится на экран Кошелька вместе с номером карты в формате штрихкода, который считывается кассовым ПО и проверяется в инфраструктуре партнёра.

img

Библиотека “Passcode Verify”

Проверка одноразового пароля, сформированного Кошельком при предъявлении карты, выполняется компонентом Passcode Verify — библиотекой, поставляемой Кошельком партнёру в формате AAR, JAR, DLL или SO, в зависимости от используемой партнёром платформы. Библиотека может быть встроена партнёром непосредственно в кассовое ПО, или в backend-сервис серверного ПО.

Библиотека проверяет значение пароля, поступающего на вход, и возвращает результат проверки, после чего ПО партнёра обрабатывает результат в соответствии с внутренней логикой (например, выполняет списание баллов по программе лояльности и выводит результат на экран кассового терминала).

Вызов библиотеки

Для проверки TOTP-пароля необходимо вызвать библиотеку Passcode Verify и передать ей значения параметров barcode, key, prefix, interval, passLength. Все параметры являются обязательными, любые изменения констант предварительно согласовываются с Кошельком:

Значение, считанное сканером с экрана приложения «Кошелёк» или введенное кассиром вручную при предъявлении карты. Полное значение штрихкода содержит в себе статическую часть (префикс и номер карты лояльности) и закрывающую динамическую часть (одноразовый временный пароль TOTP).

Можно передать библиотеке полное считанное значение штрихкода (barcode) или с разбиением на части, предварительно отделив номер карты и пароль TOTP (cardNumber, passCode).

Пример А (barcode):

Text Only
CM2775599991258853

Пример Б (cardNumber, barcode):

Text Only
2775599991258, 853

Секретный ключ партнёра (HEX-строка, 16 байт, константа). Значение предварительно передается безопасным способом представителю Кошелька.

Пример:

Text Only
70ac89d41ee665408409ffdb1b6596e0

Префикс штрихкода (константа) указывает на то, что карта предъявляется в приложении «Кошелёк». Мы рекомендуем использовать короткий префикс CM (сокр. от «Cardsmobile»).

Пример:

Text Only
CM

Время жизни пароля TOTP в секундах. Константа, рекомендуемое значение — 300.

Пример:

Text Only
300

Длина пароля TOTP в символах. Константа, рекомендуемое значение — 3.

Пример:

Text Only
3

Обработав входные данные, библиотека Passcode Verify возвращает однозначный результат проверки подлинности пароля («да» / «нет»), который далее обрабатывается ПО партнёра в соответствии с внутренней логикой.

Пример использования TOTP Service

Пример использования TOTP Service для применения бонусов к клиенту при оплате приведён на диаграмме ниже.

totp_example_ru