В кассовом ПО Artix реализована возможность работы с банковскими платежными системами.
Для оплаты покупок банковскими картами на кассовом узле необходимо установить установить специальное банковское ПО и подключить ПИН клавиатуру.
Файлы, необходимые для функционирования модуля, после установки размещаются в директории /linuxcash/cash/paysystems/<название платежной системы>
.
Файлы клиентского приложения предоставляются сотрудниками банка, которые осуществляют настройку работы процессинга.
Порядок работы с платежными системами
Ниже приведена общая схема взаимодействия с платежными системами. Конкретные платежные системы могут не поддерживать определенные функции.
Оплата
- Обращение к платежной системе. Выполняется автоматически при выборе типа оплаты, который связан с платежной системой. В качестве суммы оплаты передается текущая введенная сумма.
- Транзакция обрабатывается банком, результат возвращается кассовой программе.
- Печатаются квитанции об оплате или отказе в оплате по карте. Необходимость печати квитанций в случае отказа определяется платежной системой.
- В случае подтверждения операции банком, оплата добавляется в чек.
Количество печатаемых слипов
Количество печатаемых слипов регулируется параметром countPaymentProcessingSlips
, который задается в секции [Check]
конфигурационного файла /linuxcash/cash/conf/ncash.ini
.
Максимальное количество слипов ограничивается клиентским модулем процессинга.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
countPaymentProcessingSlips | целочисленный |
и т.д.
Пример 1 Процессинг присылает на кассу 2 (два) слипа, тогда если значение настройки
Пример 2 Процессинг присылает на кассу 1 (один) слип, тогда если значение настройки
| Максимальное количество печатаемых слипов процессинга | По умолчанию |
[Check] ... ; максимальное количество печатаемых слипов процессинга, по-умолчанию -1 ; при значении -1 печатаются все слипы, при значении 0 слипы не печатаются countPaymentProcessingSlips = 0 ...
Запись слипов в БД
Разные банковские процессинги печатают отличное количество слипов с одинаковым или разным содержанием. В связи с этим предусмотрена возможность сохранять только первый слип (для тех процессингов, у которых слипы одинаковые) или сохранять все слипы (для процессингов, у которых слип для покупателя и продавца отличается). Запись слипов производится в БД Documents
в таблицу Moneyitem
в поле slip
.
Количество сохраняемых слипов определяется параметром saveFirstPaymentProcessingSlip
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Check]
.
- при значении
true
(значение по умолчанию) в БД записывается только первый слип, - при значении
false
в БД записываются все слипы, присылаемые банковским процессингом.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
saveFirstPaymentProcessingSlip | логический |
| Настройка количества слипов, сохраняемых в БД | По умолчанию true |
[Check] ... ; сохранять в БД только первый слип процессинга ; при значении true сохраняется только первый слип, при значении false все слипы. ; если в БД пишутся все слипы, то между ними пишется разделитель "\n@\n" для последующей выборки. ; по умолчанию true ;saveFirstPaymentProcessingSlip = true
При необходимости печати всех банковских слипов в конце смены на основании данных продаж может быть создан отчет.
Пусть банковский процессинг присылает 2 слипа: первый – для покупателя, второй – для магазина. При печати чеков с целью сохранения времени производится печать только слипов для покупателя. Для внутренней отчетности магазина необходимо напечатать все слипы банка.
Для этого в главном меню необходимо настроить пункт для печати отчета с действием COMMAND_OPERATION
с параметром url
и значением report://slip2?out=print&shift=current
, а также установить параметр roles
для разграничения прав по ролям.
Шаблон отчета необходимо разместить в директории /linuxcash/cash/reports
. Пример отчета можно скачать здесь.
Оплата с отказом
Начиная с версии 4.6.210 реализована возможность печатать слипы с отказом оплаты при значении 0
параметра countPaymentProcessingSlips
При оплате чека банковской картой могут возникнуть ситуации, когда оплата не проходит. В такой ситуации возможна печать слипа с отказом оплаты для клиента. Печать задается параметром printFailedPaymentProcessingSlips
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Check]
:
- при значении
true
, если во время оплаты чека возникла ошибка, то будет напечатан слип с отказом, - при значении
false
печать слипа с отказом не осуществляется.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
printFailedPaymentProcessingSlips | логический |
| Печатать слипы с отказом | По умолчанию false |
[Check] ... ; Печатать слипы с отказом ; По умолчанию false ;printFailedPaymentProcessingSlips = false
При получении отказа оплаты данные слипа сохраняются в БД Documents
в таблицу Failedmoneyitem
.
При печати копии чека, в котором была оплата с отказом, также будет напечатан слип с отказом (при включенной настройке printFailedPaymentProcessingSlips
).
Отмена оплаты
- При отмене оплаты автоматически выполняется обращение к платежной системе со всеми параметрами оплаты.
- Запрос обрабатывается банком, результат возвращается кассовой программе.
- Печатается квитанция об отмене оплаты.
- Оплата удаляется из чека, только если запрос одобрен банком.
Сверка итогов с банком
Сверка итогов выполняется при завершении смены на кассе и предназначена для подтверждения выполненных операций и сравнения данных, которые получены банком с данными кассовой программы.
- Кассовая программа инициирует операцию сверки итогов.
- Запрос отправляется на сервер банка.
- После завершения процесса печатается отчет о выполненных операциях.
Для проведения сверки итогов с банком в утилите администрирования Yuki на пункт меню необходимо настроить команду COMMAND_VERIFYTOTAL
.
Возможность игнорирования ошибок при сверке итогов задается параметром ignoreErrors
:
true
– ошибки будут игнорироваться,false
– на экран будут выведены сообщения об ошибках, по умолчанию.
Код валюты, по которому будет производиться сверка итогов с банком, задается параметром valutcode
.
Для печати отчета по безналу в утилите администрирования Yuki на пункт меню необходимо настроить команду COMMAND_EMV_PRINTREPORT
. Дополнительно можно настроить печать отчетов командой COMMAND_PRINT_REPORTCOPY
.
В кассовом ПО Artix реализована возможность сохранения отчетов сверки продаж и журнала операций при выполнении сверки итогов по безналу. Данное поведение регулируется парметром saveTotalsReports
в конфигурационном файле /linuxcash/cash/conf/ncash.ini.d/processing.ini
в секции [Processing]
:
- при значении
true
запись журнала операций и отчета по безналу с рассчитанными суммами производится в БДDocuments
таблицуReport
, - при значении
false
не будет сохранен.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
saveTotalsReports | логический |
| Сохранение отчетов сверки итогов в БД | По умолчанию false |
[Processing] ; Настройки плагина для работы с банковскими платежными системами ; Сохранение отчетов сверки итогов в БД ; По умолчанию false ;saveTotalsReports = false
Использование одного пин-пада для нескольких организаций
Использование одного пин-пада для нескольких организаций необходимо в случаях, когда реализация товаров и услуг выполняется разными организациями-продавцами.
Оплата на несколько юр.лиц
Для проведения расчета по нескольким юридическим лицам (отделам) через один пин-пад необходимо:
- Наличие пин-пада с поддержкой оплаты на несколько отделов (юридических лиц).
Настроить соотнесение отделов на пин-паде и в кассовой программе в конфигурационном файле
/linuxcash/cash/conf/ncash.ini
в секции[HW.PINPAD.DepartMapping]
(см. Соотнесение отделов).- Активировать настройку разбивки платежа по нескольким юридическим лицам через один пин-пад.
Расчет по нескольким юридическим лицам через один пин-пад регламентируется параметром splitPaymentToMerchants
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [Check]
.
- При значении параметра
true
осуществляется разбивка платежа по нескольким юридическим лицам. В БДDocuments
в таблицеMoneyitem
создается количество записей, равное количеству оплат с указаниемmerchantId
для каждого отдела (юридического лица). Суммы платежей равны стоимости товаров в соответствии с указанными в товарах отделами. - При значении параметра
false
оплата по безналу через пин-пад проводится единым платежом без разбивки на отделы (юридические лица). В БДDocuments
в таблицеMoneyitem
будет произведена одна запись по платежу, в полеmerchantId
указывается значениеNULL
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
splitPaymentToMerchants | логический |
| Разбивать платеж по безналичному расчету по нескольким юридическим лицам | По умолчанию false |
[Check] ; ; Настройки чека ; ... ; Разбивать платеж по безналичному расчету по нескольким юридическим лицам ; По умолчанию – false ; splitPaymentToMerchants = false
Если данная настройка включена, то при оплате по безналичному расчету в одном чеке товаров из разных отделов, в процессинг отправляется единый запрос, содержащий несколько транзакций. У каждой транзакции указывается соответствующий merchantid
. При оплате по безналу на пин-паде необходимо будет осуществить ввод пин-кода карты несколько раз, в соответствии с количеством транзакций в запросе.
Если в чеке присутствует несколько товаров из разных отделов и для одного из отделов сумма оплаты равна 0, например, на товар предоставляется скидка 100%, то оплачивается только ненулевой товар, независимо от порядка добавления в чек.
Соотнесение отделов на Pinpad и в кассе
Соотнесение отделов на пин-паде и в кассовом ПО Artix производится в конфигурационном файле /linuxcash/cash/conf/ncash.ini
в секции [HW.PINPAD.DepartMapping]
. При оплате по безналу для каждого товара проверяется присвоенный ему отдел и оплата производится на юридическое лицо, заданное в указанной секции.
Соответствие банковских и логических отделов задается в виде пар: <Номер отдела(код юридического лица) на PinPad> = <Номер отдела в кассе>,
например, 1 = 3,4. Каждому банковскому отделу (юридическому лицу) может соответствовать один или несколько отделов в кассовой программе.
;[HW.PINPAD.DepartMapping] ; ; Соотнесение отделов(кодов юридических лиц) на PinPad и отделов в кассе ; <Номер отдела(код юридического лица) на PinPad> = <Номер отдела в кассе> ; ; соотнесение отделов ; на 1(первый) отдел в PinPad производится оплата из 3(третьего), 4(четвертого) отдела на кассе ;1=3,4
При подключении нескольких пин-падов с несколькими юридическими лицами требуется настроить соотнесение отделов для каждого пин-пада в секциях [HW.PINPAD.<Код валюты PinPad>.DepartMapping]
в конфигурационном файле /linuxcash/cash/conf/ncash.ini
.
Чтобы оплата товаров из отделов 1 и 2 была осуществлена на первое юридическое лицо выбранного пин-пада, а оплата товаров из отдела 3 на второе юридическое лицо выбранного пин-пада, необходимо задать следующие настройки:
[HW.PINPAD.1.DepartMapping] 1 = 1,2 2 = 3 [HW.PINPAD.2.DepartMapping] 1 = 1,2 2 = 3
Если для пин-пада не настроен ни один отдел, то на экран будет выведена ошибка "Невозможна оплата валютой: <название валюты>".
Если для пин-пада настроена только часть отделов, то на экран будет выведено предупреждение "Не настроена оплата на юридическое лицо для следующих отделов: <список отделов>. Сумма уменьшена до: <сумма для оплаты валютой>".
Если для пин-пада не указана отдельная секция, то соотнесение отделов для всех подключенных пин-падов будут применены из секции [HW.PINPAD.DepartMapping]
.
Печать слипов на разных ФР
При оплате на несколько юридических лиц можно настроить печать слипов в чеке продажи на соответствующих юр. лицам фискальных регистраторах, настраивается это в файле шаблона чека продажи sale.xml
, который находится в /linuxcash/cash/reports
.
За настройку печати слипа в чеке продажи отвечает строка (по умолчанию – слипы печатаются от всех юридических лиц в каждом из чеков продажи):
<select query="SELECT slip FROM moneyitem WHERE documentid = $document.id$ and slip is not null and slip != ''">
Для печати слипа в sale.xml
на соответствующем ФР необходимо изменить запрос выборки слипа на:
<select query="SELECT slip FROM moneyitem WHERE documentid = $document.id$ and slip is not null and slip != ''and frnum = $fr.num$ ">
, где frnum
– номер ФР, на котором будет напечатан слип.
Более подробно о настройке шаблонов можно прочитать в статье Описание шаблона <report>.
После выполнения вышеописанных шагов, соответствующий отделу и юридическому лицу слип будет печататься на заданном ему ФР:
Автоматическое закрытие чека при оплате безналичным расчетом
Начиная с версии 4.6.107 реализовано автоматическое закрытие чека, если последняя оплата является безналичной.
За возможность автоматического закрытия чека отвечает параметр autoCloseCashless
в файле конфигурации /linuxcash/cash/conf/ncash.ini
в секции [Check]
.
- При значении параметра
true
чек закрывается автоматически в случае оплаты:- полностью безналичным расчетом,
- частичным безналичным расчетом, при условии, что последняя оплата была безналичной.
- При значении параметра
false
после безналичной оплаты чек необходимо закрывать вручную.
Параметр autoCloseCashless
используется только в кассах типа POS. На кассе-трансформере при переключении в режим SCO параметр autoCloseCashless
должен быть выключен в секции [Check
] файла /linuxcash/cash/conf/ncash.ini.d/sst-sco/sstsco.ini
.
Наименование | Тип данных | Возможные значения | Описание | Примечания |
---|---|---|---|---|
autoCloseCashless | логический |
| Автоматическое закрытие чека, если последняя оплата является безналичной | По умолчанию false |
[Check] ... ; Автоматическое закрытие чека, если последняя оплата является безналичной ; По умолчанию false ; autoCloseCashless = false ...
Выполнение служебных операций
Для оплаты платежными картами достаточно выполнения операций оплаты и сверки итогов. Отдельные платежные системы предоставляют возможность выполнения дополнительных служебных операций, таких как печать отчетов. Информация для печати отчетов предоставляется банком и включает в себя информацию об операциях по безналичному расчету, произведенных с момента предыдущей инкассации до печати отчета.
Для печати отчетов по безналу в утилите администрирования Yuki на пункт меню необходимо настроить команду COMMAND_EMV_PRINTREPORT
с параметром valutcode
с указанием кода валюты, по которой необходимо выполнить печать.