Использование
Описание процесса верификации карты лояльности на кассе.
Сценарий предъявления карты лояльности с участием модуля Koshelek TOTP
Диаграмма взаимодействия участников при предъявлении карты лояльности на кассе ТСП:
Предварительные условия
Для выполнения основного сценария необходимо выполнение следующих предварительных условий:
- На стороне кассы развёрнут модуль Koshelek TOTP.
- На стороне кассы реализована поддержка предварительно согласованных с Кошельком значений параметров конфигурации модуля (см. Установка и конфигурирование).
- На стороне кассы выполнена инициализация библиотеки Passcode Verify (вызван метод
init()
, в котором переданы обязательные параметры конфигурации). - На стороне кассы реализована обработка ответов, которые возвращает модуль Koshelek TOTP в ответ на запрос метода
barcodeVerify()
. - На сервере Кошелька осуществлена настройка сервисов для осуществления взаимодействия с ритейлером.
Основной сценарий
Info
Информация о методах, указанных в сценарии, приведена ниже, в разделе «Описание методов библиотеки Passcode Verify».
- Пользователь открывает карту лояльности сети ритейлера в Кошельке.
- Кошелёк запрашивает данные для отображения данных карты (содержит штрихкод TOTP).
- Кошелёк отображает данные карты лояльности.
- Кассир сканирует штрихкод (ШК) карты лояльности.
- Касса обрабатывает считанный ШК.
- Касса передаёт строковый параметр, соответствующий считанному ШК (
fullBarcode
), модулю Koshelek TOTP на кассе в качестве входного параметра для вызова методаbarcodeVerify()
библиотеки Passcode Verify. - Модуль Koshelek TOTP на кассе анализирует полноту ШК и выделяет из полученного значения
fullBarcode
префикс, номер карты лояльности, парольную часть TOTP — все ожидаемые модулем параметры присутствуют в ШК. - Модуль Koshelek TOTP на кассе проверяет:
- действительность парольной части TOTP на основе префикса и номера карты лояльности;
- доступность операций по карте лояльности (списание / начисление бонусов).
- Модуль Koshelek TOTP на кассе возвращает кассе ответ, содержащий параметры:
- Код ответа (
resultCode
=CARDSESSION_NOT_AVAILABLE
) - Успешный результат валидации (
totpCodeValid
=true
) - Номер карты лояльности (
cardNumber
) - Полное значение ШК (
fullBarcode
)
- Код ответа (
- Касса обрабатывает успешный результат валидации.
Альтернативные сценарии
Ниже описывается ожидаемое поведение модуля TOTP и кассового ПО в различных случаях отклонения сценария от основной последовательности.
Шаг 7 основного сценария: в ШК карты лояльности не содержится префикс или его значение отличается от значения, заявленного в конфигурации: источник предъявления карты не Кошелёк
- Модуль Koshelek TOTP на кассовом сервере возвращает кассе ответ, содержащий:
- Код ответа (
resultCode
=ANOTHER_INSTANCE
). - Неуспешный результат валидации (
totpCodeValid
=false
). - Номер карты лояльности отсутствует (
cardNumber
=null
). - Полное значение ШК (
fullBarcode
).
- Код ответа (
- Касса обрабатывает ответ модуля.
- Сценарий на кассе осуществляется по схеме, аналогичной предъявлению физической карты лояльности.
Шаг 7 основного сценария: карта лояльности недействительна: ошибка списания / начисления бонусов, отсутствие дальнейших действий с участием карты
- Модуль Koshelek TOTP проверяет действительность парольной части TOTP: пароль недействителен.
- Модуль Koshelek TOTP возвращает кассе ответ, содержащий:
- Код ответа (
resultCode
=VALIDATION_FAILED
) - Неуспешный результат валидации (
totpCodeValid
=false
) - Номер карты лояльности (
cardNumber
) - Полное значение ШК (
fullBarcode
)
- Код ответа (
- Касса обрабатывает ответ модуля.
- Касса выводит в интерфейс сообщение об ошибке.
- Кассир сообщает о невозможности произвести операцию (тип заблокированной операции (списание / начисление бонусов, иное) настраивается партнёром).
Описание методов библиотеки Passcode Verify
Info
Названия методов и параметров могут незначительно отличаться в зависимости от формата библиотеки.
init()
Инициализация библиотеки.
Входные параметры
Параметр | Тип данных | Обязательно | Описание |
---|---|---|---|
algorythm |
String | Да | Используемый алгоритм шифрования. Возможные значения:HMACSHA256 HMACSHA1 |
passLength |
Int | Да | Число символов одноразового пароля. Максимальное значение: 8 . |
prefix |
String | Да | Префикс штрихкода (по умолчанию всегда CM ). |
key |
String | Да | Секретный ключ партнера (HEX String), нужен для формирования пароля. |
interval |
Int | Да | Интервал (в секундах), в рамках которого одноразовый пароль считается действительным. |
cardSessionLength |
Int | Да | Количество символов параметра cardSession . Значение по умолчанию: 6 |
delimeter |
String | Да | Разделитель между составляющими штрихкода. Допустимое значение: пробел. |
Выходные параметры
Отсутствуют.
barcodeVerify()
Верификация штрихкода.
Входные параметры
Параметр | Тип данных | Обязательно | Описание |
---|---|---|---|
fullBarcode |
String | Да | Значение штрихкода. |
Выходные параметры
Параметр | Тип данных | Обязательно | Описание |
---|---|---|---|
resultCode |
String | Да | Возможные значения в зависимости от сценария:CARDSESSION_AVAILABLE (deprecated)ANOTHER_INSTANCE CARDSESSION_NOT_AVAILABLE VALIDATION_FAILED |
totpCodeValid |
Boolean | См. описание → |
|
cardNumber |
String | См. описание → |
|
cardSession |
String | См. описание → |
|
fullBarcode |
String | Да | Значение штрихкода, полученное библиотекой от сканера кассы. |
getToken()
- (deprecated)
Получение токена.
Входные параметры
Параметр | Тип данных | Обязательно | Описание |
---|---|---|---|
requestData |
String | Да | Строка, содержащая JSON тела ответа запроса POST /checkout . |
Выходные параметры
Параметр | Тип данных | Обязательно | Описание |
---|---|---|---|
token |
String | Да | Токен для передачи в качестве заголовка запроса POST /checkout . |