...
Структура и настройка плагина
Плагин, Есть два режима работы терминала в плагине - на клиентской стороне и через сервер печати cashcheck.
Клиентский режим
В этом варианте плагин по большей части , работает на клиентской стороне. Взаимодействие с терминалами производится через утилиты и настройки сбербанка на компьютере, где установлен клиент биллинга (рабочее место кассира). Серверная часть плагина используется только для ведения истории платежей. Работа осуществляется через обращение к утилите через командную строку. Путь до неё на текущем локальном компьютере и до файлов, которые она генерирует, прописываются в настройках. Основная конфигурация производится в файле настройки клиента биллинга (файл client[_ru_RU].properties):
Блок кода | ||||
---|---|---|---|---|
| ||||
# полный путь до утилиты sb_pilot (под linux или windows), который принимает параметры согласно протокола # или же любой бинарник/скрипт его заменяющий #sbpilot.path.bin=/home/bill/sb-pilot/sb_pilot #sbpilot.path.bin=C:\sb-pilot\SB_PILOT.EXE sbpilot.path.bin=/home/bill/sb-pilot/dowindow.sh # полные пути до файлов e и p, которые создаются утилитой (см.документацию по системе sb_pilot) sbpilot.path.e=/home/bill/sb-pilot/e sbpilot.path.p=/home/bill/sb-pilot/cheque.txt # указывается вместо sbpilot.path.e в случае другой версии утилиты, которая вместо файла e создаёт лог-файл sbkernel.log # ещё следующая версия утилиты создавала файлы с ротацией sbkernelГГММ.log sbpilot.path.e2=/home/bill/sb-pilot/sbkernelsbkernel%YY%MM.log # коннектор к серверу печати, для печати чека sbpilot.cashcheckserver.connector=127.0.0.1:9876 # пароль оператора к устройству для печати текста sbpilot.cashcheckserver.oppass=30 # включить принудительную отрезку чека в конце sbpilot.cashcheckserver.endcut=1 # строка символов (в hex) которой в чеке отмечается момент реза (например, в пинпаде настройка PrinterEnd=01 или PrinterEnd=010D0A) # т.к. эта последовательность должна быть и в конце, то в таком случае sbpilot.cashcheckserver.endcut надо отключить sbpilot.cashcheckserver.charcut=0D0A01 # время в секундах, когда становится доступной кнопка "прервать утилиту" sbpilot.abort.timeout=60 # время в секундах, когда диалог сам закрывается после успешной (!) оплаты, по умолчанию отключено #sbpilot.success.close.timeout=60 |
Для распечатки чека используется сервер печати cashcheck. Необходимо установить и настроить его согласно инструкции, приведённой в соответствующем разделе.
Примечание |
---|
Необходим лишь сервер печати — приложение BGCashcheckServer. Сам плагин cashcheck устанавливать не нужно, если вы не собираетесь его использовать его функционал.. |
Режим сервера печати
В этом варианте пинпад настраивается не в клиенте, а в сервере печати cashcheck со специальным драйвером ru.bitel.frk.driver.sbpilot.Driver, все настройки в точности такие же, как для локального варианта (см. в конфиге сервера печати). Работа с пинпадом ведётся через сервер биллинга, который через сервер печати включает терминал, показывает диалог и т.д. Для доступа к серверу печати с драйвером sbpilot указывается коннектор в конфиге плагина:
Блок кода | ||
---|---|---|
| ||
# коннектор до сервера печати с настроенным плагином sbpilot (НЕ до сервера печатающего чеки)
cashserver.1.title=первый терминал
cashserver.1.connector=127.0.0.1:9876
cashserver.2.title=второй терминал
cashserver.2.connector=127.0.0.1:9876 |
Обратите внимание, что в конфиге сервера печати (тот что с драйвером sbpilot) указывается коннектор на другой сервер печати (на другой машине или на другом порту), который печатает чеки (как и в клиентском варианте).
Поддерживается несколько терминалов, с выбором налету нужного в интерфейсе, выбор запоминается для каждого юзера отдельно (в серверной сессии).
Настройка утилиты sb_pilot
...
Донастройка утилиты для биллинга заключается в том, чтобы вместить в один скрипт вызов утилиты с каким-то настройками окружения под каждую систему, и передать в утилиту переданные этому скрипту параметры (не менее четырёх). Скрипт должен запустить утилиту с параметрами, отобразить на экране в приличном виде, ожидать завершения утилиты, а после её завершения - закрыться (передать управление).
Примечание |
---|
Это распространённая ошибка: утилита корректно не запускается через этот скрипт, |
...
либо запускается и сразу закрывается, либо запускается но пишет файлы не туда, либо что-то ещё подобное. Надо отдельно проверить запуск какой-либо командой с параметрами в виде вызова именно этого скрипта и убедиться, что она ведёт себя как надо. |
Ниже приведены примеры (не стоит рассматривать их как конечные решения).
...