Модуль LPay предназначен для выполнения оплаты и возврата по чеку продажи через процессинг Loymax Loyalty Pay.
Типы поддерживаемых операций:
- оплата чека продажи,
- отмена оплаты чека продажи,
- возврат по чеку продажи.
Конфигурирование модуля
Для использования модуля необходимо установить пакет artix-lpay командой:
aptitude install artix-lpay
Запрос к процессинговой системе L-Pay выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.
dpkg-reconfigure artix-lpay
Настройки процессинга задаются в конфигурационном файле /linuxcash/cash/paysystem/lpay/lpay.ini в секции [Lpay].
| Наименование | Тип данных | Описание | Примечания |
|---|---|---|---|
| url | строковый | Адрес сервера | По умолчанию "http://localhost" |
| timeout | целочисленный | Время ожидания ответа от сервера (в секундах) | По умолчанию 10 секунд |
| statusRequestInterval | целочисленный | Интервал запроса статуса заказа (в секундах) | По умолчанию 10 секунд |
| statusRequestDelay | целочисленный | Отсрочка перед первым запросом статуса заказа (в секундах) | По умолчанию 5 секунд |
| refundDuration | целочисленный | Время ожидания выполнения возврата (в секундах) | По умолчанию 60 секунд |
| clientId | строковый | Идентификатор клиента | |
| login | строковый | Имя пользователя | |
| password | строковый | Пароль | |
deviceId | строковый | Идентификатор кассы | |
onlineCodeMask | строковый | Маска кода оплаты | По умолчанию "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}?)_(?<card>[0-9a-zA-Z$]{4,30})$" |
| offlineCodeMask | строковый | Маска кода офлайн-оплаты | По умолчанию "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}\.)_(?<totp>[0-9]{6})_(?<card>[0-9a-zA-Z$]{4,30})$" |
[LPay]
; Настройки процессинга LPay
; Адрес сервера
; По умолчанию http://localhost
;url = http://localhost
; Время ожидания ответа от сервера (в секундах)
; По умолчанию 10 секунд
;timeout = 10
; Интервал запроса статуса заказа (в секундах)
; По умолчанию 10 секунд
;statusRequestInterval = 10
; Отсрочка перед первым запросом статуса заказа (в секундах)
; По умолчанию 5 секунд
;statusRequestDelay = 5
; Время ожидания выполнения возврата (в секундах)
; По умолчанию 60
;refundDuration = 60
; Идентификатор клиента
; По умолчанию ""
;clientId = ""
; Имя пользователя
; По умолчанию ""
;login = ""
; Пароль
; По умолчанию ""
;password = ""
; Идентификатор кассы
; По умолчанию ""
;deviceId = ""
; Маска кода оплаты
; По умолчанию "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}?)_(?<card>[0-9a-zA-Z$]{4,30})$"
;onlineCodeMask = "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}?)_(?<card>[0-9a-zA-Z$]{4,30})$"
; Маска кода офлайн-оплаты
; По умолчанию "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}\.)_(?<totp>[0-9]{6})_(?<card>[0-9a-zA-Z$]{4,30})$"
;offlineCodeMask = "^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}\.)_(?<totp>[0-9]{6})_(?<card>[0-9a-zA-Z$]{4,30})$"
Добавление карты лояльности
Для работы процессинга требуется наличие карты лояльности Loymax в чеке. Для использования карты с процессингом LPay необходимо:
В утилите администрирования Yuki для группы карт с типом карты Loymax задать:
Маски, заданные в утилите администрирования Yuki, должны совпадать с масками для кодов онлайн и офлайн оплат (см. параметры
onlineCodeMaskиofflineCodeMask).- для онлайн-карт:
маску номеров карт:
^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}?)_(?<card>[0-9a-zA-Z\$]{4,30})$правило преобразования –
\2.
- для офлайн-карт:
маску номеров карт:
^lpay[0-9]?_(?<mark>[a-zA-Z0-9+/]{194,217}={0,2}\.)_(?<totp>[0-9]{6})_(?<card>[0-9a-zA-Z\$]{4,30})$правило преобразования –
\3.
- для онлайн-карт:
В утилите администрирования
Yukiнастроить действие с командойCOMMAND_CARD.Для POS 5 необходимо указать параметр
usePanelExtensionсо значениемfalse.
Оплата чека продажи
Для выполнения оплаты необходимо в режиме формирования чека отсканировать код оплаты LPay из клиентского приложения. При сканировании кода оплаты будет добавлена карта лояльности Loymax.
При добавлении карты Loymax в чек выполняется проверка кода оплаты. Если сервер возвращает признак необходимости подтверждения, то для оплаты покупателю необходимо выполнить подтверждение оплаты в клиентском приложении.
Если код оплаты не прошел валидацию, то на экране кассы отобразится сообщение об ошибке. В этом случае карта лояльности добавится в чек, но оплата LPay будет недоступна. Для повторной проверки валидации необходимо сторнировать карту и отсканировать новый код оплаты из клиенсткого приложения.
Если при выполнении оплаты возникла ошибка, то запрос отмены оплаты помещается в очередь Artix-Queue.
Возврат по чеку продажи
Возврат выполняется по идентификатору оплаты paymentID, полученному при выполнении оплаты чека продажи.
Логирование
Журнал запросов к процессинговой системе LPay ведется в основном логе /linuxcash/logs/current/terminal.log.