Интеграция с кассовыми аппаратами

Skip to end of metadata
Go to start of metadata
Вы просматриваете старую версию данной страницы. Смотрите текущую версию. Сравнить с текущим  |   просмотр истории страницы

Схема взаимодействия биллинга с кассовым аппаратом

У кассира на рабочем компьютере должно быть запущено специальное приложение (tray_proxy). Биллинг, при авторизации кассира, запоминает его ip адрес и далее все команды для ККМ отправляются на этот ip адрес и обрабатывается приложением tray_proxy.

По умолчанию при печати чека для наличной оплаты биллинг отправляет команды на печать только 1 чека. В случае, если необходимо распечатать повторно тот же самый чек и отдать абоненту - используйте опцию Повторить последний документ на вкладке ККМ

Операции с кассовым аппаратом

Доступны операции:

  • Отчёт с гашением
  • Отчёт без гашения
  • Запустить ККМ
  • Открыть смену
  • Повтрорить последний документ
  • Внесение средств - корректировка содержимого кассы, чтобы счетчик ККМ совпадал с фактическим количеством наличных денег в кассе, не добавляет средства на счёт абонента;
  • Выемка средств - корректировка содержимого кассы, аналогично "Внесению средств";
  • Проверка связи
  • Получить ID терминала
  • Закрыть день

Установка и настройка

Установка tray_proxy

Скачать приложение можно по ссылке: tray_proxy_v3.1.zip

tray_proxy под Windows (XP, 7, 10)

Для работы необходимо:

tray_proxy под Ubuntu, Debian

Для работы необходимо:

  • Python 2.7: apt install python2.7 python-pip python-dev build-essential
  • PyGTK 2.24: apt install python-gtk2
  • Обновить pip: pip install --upgrade pip
  • PySerial 2.7: _pip install pyserial==2.7
  • zope.interface 4.1.3: pip install zope.interface==4.1.3
  • Twisted 15.4.0: pip install Twisted==15.4.0

Скрипт установки:

#!/bin/bash
apt install python2.7 python-pip python-dev build-essential python-gtk2
pip install --upgrade pip
pip install pyserial==2.7 zope.interface==4.1.3 Twisted==15.4.0

Настройка tray_proxy и ККМ

Откройте файл settings.py и укажите параметры:

  • BILLING_IP - IP биллинга (команды будут приниматься только с этого ip)
  • DEVICE_TYPE - тип устройства: 0 - COM-порт, 1 - USB
  • DEVICE - порт, к которому подключен кассовый аппарат, например: 'COM3'
  • BAUDRATE - скорость соединения с портом, например: 115200
  • KKM - протокол работы
  • DEBUG - следует выставить "0", если запускаете двойным кликом по "main.pyw", или "1", если через командную строку.
  • AUTOSTART - следует выставить "1", если после запуска скрипта нужно сразу запускать веб-сервер и соединение с ККМ.

Опционально: возможность передать все настройки (их может быть много) в виде строки json

  • ATOL_SETTINGS = параметры для ККМ, например:
    r'{"Port":"1"}'

Далее можно запускать main.pyw двойным кликом или через консоль (для запуска могут потребоваться права администратора).
Под Ubuntu есть возможность запуска приложения через иконку TrayProxy (файл иконки tray_proxy.desktop)
Правый клик по иконке в системном трее, пункт "Start Server" запустит веб-сервер, который будет принимать запросы на печать чеков от биллинга.
Для этого нужно убедиться, что порт 8080 открыт на компьютере кассира.

Настройки для ШТРИХ-М

Для работы с данными ККМ нужно установить "ШТРИХ-М: Драйвер ККТ", скачать который можно по ссылке https://www.shtrih-m.ru/support/download/ , и настроить взаимодействие с ККМ в драйвере.

В файлер settings.py укажите:

  • KKM - 'SHTRIH_COM'
  • DEVICE - 0, где 0 - номер устройства в драйвере

Настройки для ПИРИТ

Сайт производителя аппарата: http://www.crystals.ru/fiskalnyj-registrator

Работа проверялась на аппарате ПИРИТ ФР01К

Каких-либо специфичных настроек интеграция с ПИРИТ не имеет.

Теоретически, поддерживаются все устройства, работающие по протоколу ПИРИТ.

Настройка кассового аппарата АТОЛ

Сайт производителя аппарата: http://www.atol.ru/products/kkt/
Описание протокола:

Протокол АТОЛ ККТ 3.1

По данному протоколу осуществляется поддержка 54-ФЗ аппаратами Атол с ФФД 1.0.5. Работа проверялась на аппарате АТОЛ 30Ф

Как настроить:

  1. Для работы нужен драйвер АТОЛ версии 10 или выше, его можно скачать в центре загрузки АТОЛ в разделе "Контрольно-кассовая техника".
    Прямая ссылка на версию драйвера 10.6.0.0: http://fs.atol.ru/...
    Если используется Windows - обязательно устанавливайте 32-битную версию (архив/версия/installer/exe/KKT10-версия-windows32-setup.exe).
Устанавливать драйвер в ОС Windows необходимо в C:\Program Files\ATOL\
  1. После скачивания архива скопируйте libfptr10.py (файл архив/версия/wrappers/python/) в папку с TrayProxy.
  2. Укажите в settings.py:
    • KKM - ATOL3
  3. Дополнительные опции для TrayProxy: возможность передать все настройки (их может быть много) в виде строки json
    • ATOL_SETTINGS - параметры для ККМ, например:
      r'{"Port":"1"}'

Если настройки не подошли, адаптер попытается вызвать окно настроек драйвера. Если после этого соединение удастся - успешные настройки будут записаны в лог.

Протокол АТОЛ ККТ 2.4

Работа проверялась на аппаратах Fprint-03K и Fprint-22K

Внимание: У названия ККТ Fprint в конце должна быть буква K. Например в названии FPrint-55K. Оборудование FPrint-55 (без буквы К) является принтером а не ККТ и не поддерживается для интеграции с биллингом

Теоретически, поддерживаются ККТ FPrint-55K, FPrint-22K, FPrint-11ПТК и FPrint-77ПТК, поддерживающие протокол Атол версии 2.4 с включенным режимом совместимости 1.0
Если Ваше устройство работает по протоколу версии 3, то переключить его на протокол 2 версии можно через Сервисный режим.

Режим совместимости для протокола 2.4 и ФФД 1.0

Для оборудования с версией протокола 3+ необходимо включить режим совместимости через драйвер идущий в поставке

На 4 шаге установите значения:

  • Таблица 2 Ряд 1 Поле 109
  • Значение установите 001

Verifone vx820. Безналичная оплата с терминалов

Для того, чтобы биллинг мог отправлять команды на терминал Verifone для списания конкретной суммы с абонентов, необходимо провести следующую настройку:

  1. TrayProxy
    POS = 'PILOTNT'
    POS_PATH = r'C:\sc552'
    • POS - включение поддержки POS-терминала, PILOTNT – имя адаптера (в данный момент единственный)
    • POS_PATH - путь где искать файл pilot_nt.dll. Чаще всего ПО Сбербанка располагается в папке C:\sc552

  2. Перейти на вкладку Платежные системы - Настройки веб-кассы и выставить опцию ИСПОЛЬЗОВАТЬ POS-ТЕРМИНАЛ


  3. Для того, чтобы можно было отправить команды на терминал, необходимо перейти в меню Веб-касса, найти нужного абонента и добавить Безналичный приход, выставив данную опцию.


  4. После добавления прихода, он будет отображен у абонента. Для того, чтобы данную сумму списать с карты абонента, необходимо рядом с платежом выбрать пункт Оплатить картой

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

Внимание: Опция Оплатить картой будет доступна только для безналичных платежей!

Настройка биллинга

В настройках веб-кассы в поле "ККМ (PIRIT, ATOL И Т.П.)" нужно указать протокол:

Для всех новых инсталяций и инсталяций на Linux используется Атол версии 3
  • Оставьте пустым для АТОЛ версии 3
  • ATOL - для АТОЛ версий 1 и 2
  • SHTRIH_COM - для ШТРИХ-М
  • PIRIT - для ПИРИТ

У АТОЛ есть пароли оператора и смены режима:

  • ККМ ПАРОЛЬ ДОСТУПА - по умолчанию "0"
  • ККМ ПАРОЛЬ СМЕНЫ РЕЖИМА - по умолчанию "30".

Решение проблем с TrayProxy

Для работы с ККМ необходимо:

  1. Перейти на вкладку "Веб - касса" из меню основной платформы


  2. Выбрать вкладку "ККМ"


  3. В открывшемся меню нажать на кнопку "Запустить ККМ"

Если биллинг выдаст ошибку необходимо:

  1. Открыть файл settings.py и выставить в поле "DEBUG" значение "1"
  2. запустить файл main.pyw из командной строки с помощью python.
  3. Для запуска из командной строки необходимо перейти в каталог с установленным питоном и выполнить команду python 'путь до файла main.pyw", напирмер:
    python C:\tray_proxy\main.pyw
  4. После этого откроется окно с подробным логом
  5. Ещё раз нажмите кнопку "Запустить ККМ" и увидите какую именно ошибку выдает tray_proxy

Нет связи с ККМ

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

[root@bill ~]# telnet 192.168.0.125 8080
Trying 192.168.0.125...

Trying означает, что порт закрыт. При установлении связи появиться Connected.
Если порт закрыт, установите необходимые правила файрвола.

Если компьютер находится за NAT, пробросьте порт на маршрутизаторе.

В момент нажатии кнопки Открыть смену биллинг пытается отправить команду на tray_proxy, который находится на компьютере оператора, поэтому, если у биллинга нет доступа до компьютера оператора - связи не будет.

Некорректный ответ API от ККМ

Возможно указаны неверные пароли. Необходимо перейти на вкладку Платежные системы - Настройки веб-кассы и поменять значения 30 и 0 у полей ККМ ПАРОЛЬ ДОСТУПА и ККМ ПАРОЛЬ СМЕНЫ РЕЖИМА

Произошла ошибка api: Неверная длина

У ККМ есть ограничение длины строки, у некоторых моделей это значение немного отличается. По умолчанию задано 48 символов. Ошибка "Произошла ошибка api: Неверная длина" означает, что для Вашего аппарата необходимо указать другое значение этого параметра. Изменить можно с помощью файла /app/asr_billing/cfg/kkm_atol_webcash.json , записав туда:

{"stringMax": 32}

Вместо "32" необходимо указать длину строки для Вашего аппарата.

Выполняется другая команда

Если биллинг выдает ошибку "Выполняется другая команда" - скорее всего драйвер не может запуститься, либо не закрыли диалог настроек АТОЛ.

Драйвер не готов

Если Вы используете Windows и АТОЛ версии 3, убедитесь что установлен 32-битный драйвер даже если ОС 64-битная - это можно посмотреть в оснастке "Установка и удаление программ"

Если все выше не помогло, что дать техподдержке чтобы мне помогли?

  1. Включите DEBUG в settings.py: DEBUG = 1
  2. Запустите TrayProxy
  3. Выполните команду с биллинга
  4. Если в интерфейсе кассы появилась ошибка, сделайте скриншот
  5. Создайте заявку и приложите к ней:
    • Файл debug.log
    • Файл настроек settings.py
    • Скриншот ошибки
Введите метки, чтобы добавить к этой странице:
Please wait 
Ищите метку? просто начните печатать.