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

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (52)

просмотр истории страницы
h2. Установка tray_proxy

Скачать приложение можно по ссылке: [Интеграция с кассовыми аппаратами^tray_proxy_v3.23.zip]

{INFO}
Откройте файл _settings.py_ и укажите параметры:

* *BILLING_IP* - \- IP биллинга (команды будут приниматься только с этого ip)
* *DEVICE_TYPE* - \- тип устройства: 0 - COM-порт, 1 - USB
* *DEVICE* - \- порт, к которому подключен кассовый аппарат, например: 'COM3'
* *BAUDRATE* - \- скорость соединения с портом, например: 115200
* *KKM* - \- протокол работы
* *DEBUG* - \- следует выставить "0", если запускаете двойным кликом по "main.pyw", или "1", если через командную строку.
* *AUTOSTART* - \- следует выставить "1", если после запуска скрипта нужно сразу запускать веб-сервер и соединение с ККМ.
* *TAX* \- код ставки НДС. Возможные значения:
** 0 - без НДС
** 1 - НДС 0%
** 2 - НДС 10%
** 3 - НДС 18%
** 4 - НДС 10/110
** 5 - НДС 18/118
** 6 - НДС 20%
** 7 - НДС 20/120
** 8 - НДС 5%
** 9 - НДС 7%
** 10 - НДС 5/105
** 11 - НДС 7/107
** 12 - НДС 22%
** 13 - НДС 22/122

+Опционально+: возможность передать все настройки (их может быть много) в виде строки json
* *ATOL_SETTINGS* = параметры для ККМ, например:
{code}r'{"Port":"1"}'{code}

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

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

h3. Настройки для ПИРИТ
Сайт производителя аппарата: [http://www.crystals.ru/fiskalnyj-registrator]


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

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

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

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

Как настроить:
# Для работы нужен драйвер АТОЛ версии 10 или выше, его можно скачать в [центре загрузки АТОЛ|http://fs.atol.ru/SitePages/Центр загрузки.aspx] в разделе "*Контрольно-кассовая техника*".
Прямая ссылка на версию драйвера 10.10.6.0: [https://fs.atol.ru/_layouts/15/atol.templates/Handlers/FileHandler.ashx?guid=32a1c76d-1166-4536-b8df-d9cc244f3ff2&webUrl=]
{note}Если используется Windows - обязательно устанавливайте 32-битную версию (архив/версия/installer/exe/KKT10-версия-windows32-setup.exe).{note}
# После скачивания архива скопируйте *libfptr10.py* (файл архив/версия/wrappers/python/) в папку с TrayProxy.
# Укажите в _settings.py_:
#* *KKM* - \- ATOL3
# Дополнительные опции для TrayProxy: возможность передать все настройки (их может быть много) в виде строки json
#* *ATOL_SETTINGS* - \- параметры для ККМ, например:
{code}r'{"Port":"1"}'{code}

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

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

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

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

{code}POS = 'PILOTNT'
POS_PATH = r'C:\sc552'{code}
#* *POS* - \- включение поддержки POS-терминала, PILOTNT -- имя адаптера (в данный момент единственный)
#* *POS_PATH* - \- путь где искать файл _pilot_nt.dll_. Чаще всего ПО Сбербанка располагается в папке _C:\sc552_ \\ \\
\\
\\
# Перейти на вкладку *Платежные системы - Настройки веб-кассы* и выставить опцию *ИСПОЛЬЗОВАТЬ POS-ТЕРМИНАЛ*
!kassa1.png|border=0,width=760! \\ \\
!kassa1.png|border=0,width=760!
\\
\\
# Для того, чтобы можно было отправить команды на терминал, необходимо перейти в меню *Веб-касса*, найти нужного абонента и добавить *Безналичный* приход, выставив данную опцию.
!kassa2.png|border=0,width=370! \\ \\
!kassa2.png|border=0,width=370!
\\
\\
# После добавления прихода, он будет отображен у абонента. Для того, чтобы данную сумму списать с карты абонента, необходимо рядом с платежом выбрать пункт *Оплатить картой*
!kassa3.png|border=0,width=230!

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

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

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

В [настройках веб-кассы|CarbonBilling:Веб-интерфейс кассира] в поле "*ККМ (PIRIT, ATOL И Т.П.)*" нужно указать протокол:
{info} Для всех новых инсталяций и инсталяций на Linux используется Атол версии 3{info}
* +Оставьте пустым+ для _АТОЛ версии 3_
* *ATOL* - \- для АТОЛ версий 1 и 2
* *SHTRIH_COM* - \- для ШТРИХ-М
* *PIRIT* - \- для ПИРИТ

У АТОЛ есть пароли оператора и смены режима:
* *ККМ ПАРОЛЬ ДОСТУПА* - \- по умолчанию "0"
* *ККМ ПАРОЛЬ СМЕНЫ РЕЖИМА* - \- по умолчанию "30".

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

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

# Перейти на вкладку "Веб - касса" из меню основной платформы
!BASE.png|border=0,width=100! \\ \\
!BASE.png|border=0,width=100!
\\
\\
# Выбрать вкладку "ККМ"
!KKT.png|border=0,width=350! \\ \\
!KKT.png|border=0,width=350!
\\
\\
# В открывшемся меню нажать на кнопку "Запустить ККМ"

Если биллинг выдаст ошибку необходимо:
# Открыть файл *settings.py* и выставить в поле *"DEBUG"* значение *"1"*
# зЗапустить файл *main.pyw* из командной строки с помощью _python_.
# Для запуска из командной строки необходимо перейти в каталог с установленным питоном и выполнить команду *python 'путь до файла main.pyw"*, напирмер:
{code}python C:\tray_proxy\main.pyw{code}

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

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

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

Reject host 192.168.0.0
{info}
В логе trayproxy.log ошибка "reject" также означает отсутствие связи между биллингом и ПК, на котором установлена касса.

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

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

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

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

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

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

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

h2. Драйвер не готов
Если Вы используете Windows и АТОЛ версии 3, убедитесь что установлен 32-битный драйвер +даже если ОС 64-битная+ - это можно посмотреть в оснастке "[Установка и удаление программ|https://support.microsoft.com/ru-ru/help/4028054/windows-10-repair-or-remove-programs]"

Если Вы используете Windows и АТОЛ версии 3, убедитесь что установлен 32-битный драйвер +даже если ОС 64-битная+ \- это можно посмотреть в оснастке "[Установка и удаление программ|https://support.microsoft.com/ru-ru/help/4028054/windows-10-repair-or-remove-programs]"

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

# Включите _DEBUG_ в settings.py: *DEBUG = 1*
# Запустите TrayProxy
# Выполните команду с биллинга