Начиная с версии 4.6.265 поддержан протокол Kaspi v2 с механизмом актуализации статуса транзакции.
Модуль Kaspi предназначен для выполнения оплаты платежными картами с использованием банковского платежного терминала Kaspi.
Типы поддерживаемых операций:
- оплата,
- возврат по чеку продажи,
- отмена оплаты для чека продажи.
Конфигурирование модуля
Для использования модуля необходимо установить пакет artix-kaspi.
aptitude install artix-kaspi
Запрос к процессинговой системе Kaspi выполняется при выборе специального типа оплаты. Для добавления типа оплаты необходимо выполнить конфигурирование модуля. Номер типа оплаты задается в процессе конфигурирования.
dpkg-reconfigure artix-kaspi
Настройки процессинга задаются в файле /linuxcash/cash/paysystems/kaspi/kaspi.conf в секции [Main].
| Наименование | Тип данных | Возможные значения | Описание | Примечания |
|---|---|---|---|---|
| url | строковый | Адрес пин-пада | По умолчанию "http://localhost:8080" | |
| timeout | целочисленный | Время ожидания ответа от пин-пада | По умолчанию 10 секунд | |
| frequency | целочисленный | Частота получения статуса запроса | По умолчанию 500 миллисекунд | |
| multiplier | строковый | Мультипликатор сумм для отправки в процессинг | По умолчанию 0.01 | |
| path | строковый |
| Путь сервиса | По умолчанию В протоколе v2 реализован механизм актуализации статуса транзакции в случае ошибки выполнения запроса к серверу процессинга. |
[Main] ; Настройки процессинга Kaspi ; Адрес пин-пада ; По умолчанию "http://localhost:8080" ;url = "http://localhost:8080" ; Время ожидания ответа от пин-пада (в секундах) ; По умолчанию 10 секунд ;timeout = 10 ; Частота получения статуса запроса (в миллисекундах) ; По умолчанию 500 ;frequency = 500 ; Мультипликатор сумм для отправки в процессинг ; По умолчанию 0.01 ;multiplier = 0.01 ; Путь сервиса ; По умолчанию "/" ;path = "/"
Если во время работы с пин-падом произошла ошибка, то на экран кассира будет выведено сообщение "Ошибка при работе с пин-падом".
При возврате по чеку продажи используется тот же способ оплаты, с помощью которого был оплачен чек продажи.
Работа процессинга одновременно с несколькими терминалами
Для корректной работы функционала необходимо:
- в свойствах товаров указать принадлежность к отделу,
- использовать отдельный терминал для каждого отдела.
Для настройки последовательной оплаты на нескольких терминалах Kaspi необходимо:
- Добавить валюту, привязанную к терминалу, для оплаты товаров из определенного отдела в БД
DictionariesтаблицуValutс параметромmode= 2. - В БД
DictionariesтаблицеPayforbiddanceуказать отделы, в которых будет запрещена оплата валютой, привязанной к терминалу. Для каждого терминала настроить секцию с указанием кода валюты [
Main.<код валюты, привязанной к терминалу>] в конфигурационном файле/linuxcash/cash/paysystems/kaspi/kaspi.conf.Пример настройки секций терминалов для валют с кодами 21 и 22[Main.21] ; Настройки процессинга Kaspi ; Адрес пин-пада ; По умолчанию "http://localhost:8080" ;url = "http://localhost:8080" ; Время ожидания ответа от пин-пада (в секундах) ; По умолчанию 10 секунд ;timeout = 10 ; Частота получения статуса запроса (в миллисекундах) ; По умолчанию 500 ;frequency = 500 ; Мультипликатор сумм для отправки в процессинг ; По умолчанию 0.01 ;multiplier = 0.01 ; Путь сервиса ; По умолчанию "/" ;path = "/" [Main.22] ; Настройки процессинга Kaspi ; Адрес пин-пада ; По умолчанию "http://localhost:8080" ;url = "http://localhost:8080" ; Время ожидания ответа от пин-пада (в секундах) ; По умолчанию 10 секунд ;timeout = 10 ; Частота получения статуса запроса (в миллисекундах) ; По умолчанию 500 ;frequency = 500 ; Мультипликатор сумм для отправки в процессинг ; По умолчанию 0.01 ;multiplier = 0.01 ; Путь сервиса ; По умолчанию "/" ;path = "/"
Добавить логическую валюту в БД
DictionariesтаблицуValutс параметромmode=2048. Правила округления и тип оплаты задаются произвольно. Выбор логической валюты при оплате будет инициировать последовательную оплату валютами, привязанными к терминалам.Настроить соотнесение кода логической валюты и кодов валют, привязанных к терминалам, в конфигурационном файле
/linuxcash/cash/conf/ncash.ini.d/processing.iniв секции [Processing.ValutMapping].Пример маппинга[Processing.ValutMapping] ; Маппинг валют для последовательной оплаты на нескольких терминалах ; ; По умолчанию секция пустая, последовательная оплата по маппингу не используется. ; <Код логической валюты> = [Список кодов валют, привязанных к терминалам] ; Список задается через запятую, например: ;8 = 7, 5 8 = 21, 22
Если при оплате используется валюта, привязанная к терминалу, и она не указана в маппинге, то настройки будут считываться из секции
[Main].
В чеке присутствуют товары из отделов 1 и 2.
Настроены:
- Валюта с кодом 21:
- указан параметр
valut.mode=2, - запрещена оплата валютой во всех отделах, кроме отдела 1,
терминал 1 используется только для оплаты товаров из отдела 1 валютой с кодом 21:
Пример настройки[Main.21] ; Настройки процессинга Kaspi ....
- указан параметр
- Валюта с кодом 22:
- указан параметр
valut.mode=2, - запрещена оплата валютой во всех отделах, кроме отдела 2,
терминал 2 используется только для оплаты товаров из отдела 2 валютой с кодом 22:
Пример настройки[Main.22] ; Настройки процессинга Kaspi ....
- указан параметр
- Валюта с кодом 5 – логическая валюта:
- указан параметр
valut.mode=2048.
- указан параметр
Маппинг валют:
Пример настройки[Processing.ValutMapping] 5 = 21, 22
При выборе логической валюты для оплаты чека инициируется последовательная оплата: товаров из отдела 1 – через терминал 1, товаров из отдела 2 – через терминал 2.
- Если в чек добавлен товар из запрещенного отдела, то оплата логической валютой не применится. На экран будет выведена ошибка "Не для всех позиций чека подобрана целевая валюта оплаты".
- Если в чек добавлен товар из отдела, для которого оплата валютами с кодами 21 и 22 не запрещена, то оплата будет произведена валютой с кодом 22.
Шаблон слипа для печати
При оплате чека будет напечатан слип, шаблон которого находится в /linuxcash/cash/reports/kaspi.xml.
Логирование
Журнал запросов к процессинговой системе Kaspi ведется в основном логе /linuxcash/logs/current/terminal.log.