Начиная с версии 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строковый
  • "/"
    (для протокола Kaspi v1)
  • "/v2/"
    (для протокола Kaspi v2)
Путь сервиса

По умолчанию "/"

В протоколе v2 реализован механизм актуализации статуса транзакции в случае ошибки выполнения запроса к серверу процессинга.

Пример настройки
[Main]
; Настройки процессинга Kaspi

; Адрес пин-пада
; По умолчанию "http://localhost:8080"
;url = "http://localhost:8080"

; Время ожидания ответа от пин-пада (в секундах)
; По умолчанию 10 секунд
;timeout = 10

; Частота получения статуса запроса (в миллисекундах)
; По умолчанию 500
;frequency = 500

; Мультипликатор сумм для отправки в процессинг
; По умолчанию 0.01
;multiplier = 0.01

; Путь сервиса
; По умолчанию "/"
;path = "/"

Если во время работы с пин-падом произошла ошибка, то на экран кассира будет выведено сообщение "Ошибка при работе с пин-падом".

При возврате по чеку продажи используется тот же способ оплаты, с помощью которого был оплачен чек продажи.

Работа процессинга одновременно с несколькими терминалами

Для корректной работы функционала необходимо:

  • в свойствах товаров указать принадлежность к отделу,
  • использовать отдельный терминал для каждого отдела.

Для настройки последовательной оплаты на нескольких терминалах Kaspi необходимо:

  1. Добавить валюту, привязанную к терминалу, для оплаты товаров из определенного отдела в БД Dictionaries таблицу Valut с параметром mode = 2.
  2. В БД Dictionaries таблице Payforbiddance указать отделы, в которых будет запрещена оплата валютой, привязанной к терминалу.
  3. Для каждого терминала настроить секцию с указанием кода валюты [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 = "/"
  4. Добавить логическую валюту в БД Dictionaries таблицу Valut с параметром mode=2048. Правила округления и тип оплаты задаются произвольно. Выбор логической валюты при оплате будет инициировать последовательную оплату валютами, привязанными к терминалам. 

  5. Настроить соотнесение кода логической валюты и кодов валют, привязанных к терминалам, в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/processing.ini в секции [Processing.ValutMapping].

    Пример маппинга
    [Processing.ValutMapping]
    ; Маппинг валют для последовательной оплаты на нескольких терминалах
    ;
    ; По умолчанию секция пустая, последовательная оплата по маппингу не используется.
    ; <Код логической валюты> = [Список кодов валют, привязанных к терминалам]
    ; Список задается через запятую, например:
    ;8 = 7, 5
    8 = 21, 22

    Если при оплате используется валюта, привязанная к терминалу, и она не указана в маппинге, то настройки будут считываться из секции [Main].

Пример оплаты товаров из разных отделов несколькими терминалами

В чеке присутствуют товары из отделов 1 и 2.

Настроены:

  1. Валюта с кодом 21:
    • указан параметр valut.mode = 2,
    • запрещена оплата валютой во всех отделах, кроме отдела 1, 
    • терминал 1 используется только для оплаты товаров из отдела 1 валютой с кодом 21:

      Пример настройки
      [Main.21]
      ; Настройки процессинга Kaspi
      ....
  2. Валюта с кодом 22:
    • указан параметр valut.mode = 2,
    • запрещена оплата валютой во всех отделах, кроме отдела 2,
    • терминал 2 используется только для оплаты товаров из отдела 2 валютой с кодом 22:

      Пример настройки
      [Main.22]
      ; Настройки процессинга Kaspi
      ....
  3. Валюта с кодом 5 – логическая валюта:
  4. Маппинг валют:

    Пример настройки
    [Processing.ValutMapping]
    5 = 21, 22

При выборе логической валюты для оплаты чека инициируется последовательная оплата: товаров из отдела 1 – через терминал 1, товаров из отдела 2 – через терминал 2.

  • Если в чек добавлен товар из запрещенного отдела, то оплата логической валютой не применится. На экран будет выведена ошибка "Не для всех позиций чека подобрана целевая валюта оплаты".
  • Если в чек добавлен товар из отдела, для которого оплата валютами с кодами 21 и 22 не запрещена, то оплата будет произведена валютой с кодом 22.

Шаблон слипа для печати

При оплате чека будет напечатан слип, шаблон которого находится в /linuxcash/cash/reports/kaspi.xml.

Логирование

Журнал запросов к процессинговой системе Kaspi ведется в основном логе /linuxcash/logs/current/terminal.log.

  • No labels