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

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

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

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

У кассира на рабочем компьютере должен должно быть запущено специальное приложение (tray_proxy). Биллинг, при авторизации кассира, запоминает его ip адрес и далее все команды для ККМ отправляются на этот ip адрес и обрабатывается приложением tray_proxy.
{INFO}
По умолчанию при печати чека для *наличной* оплаты биллинг отправляет команды на печать только 1 чека. В случае, если необходимо распечатать повторно тот же самый чек и отдать абоненту - используйте опцию *Повторить последний документ* на вкладке ККМ
{INFO}

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

!ATOL2.png|border=0,width=400!

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

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

h2. Установка tray_proxy

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

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

Для работы необходимо:
* *Python 2.7* [Сайт|https://www.python.org/downloads/] (прямая ссылка на 32-битный инсталлятор: [python-2.7.10.msi|https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi])
* *PyGTK 2.24* [Сайт|http://www.pygtk.org/downloads.html] (прямая ссылка на 32-битный инсталлятор: [pygtk-all-in-one-2.24.2.win32-py2.7.msi|http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi])
* *PySerial 2.7* [Сайт|https://pythonhosted.org/pyserial/] (прямая ссылка на 32-битный инсталлятор: [pyserial-2.7.win32.exe|https://pypi.python.org/packages/47/c9/7802e11ab388ad1539de716649add8bb8ca8bdff660364b3a404f79c27b7/pyserial-2.7.win32.exe#md5=21555387937eeb79126cde25abee4b35])
* *PyWin32 build 221* [Сайт|https://sourceforge.net/projects/pywin32/] (ссылка на 32-битный инсталлятор: [pywin32-221.win32-py2.7.exe|https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py2.7.exe/download])
* *zope.interface 4.1.3* [Сайт|https://zopeinterface.readthedocs.io] (прямая ссылка на 32-битный инсталлятор: [zope.interface-4.1.3.win32-py2.7.exe|https://pypi.python.org/packages/49/5f/ed5ea875af4e802198d035efe985d341d9b50edddbc22b785d2ef4b9eb66/zope.interface-4.1.3.win32-py2.7.exe#md5=e0a5bbc762126157b63d0233e26cc751])
* *Twisted 15.4.0* [Сайт|http://twistedmatrix.com/trac/wiki/Downloads] (прямая ссылка на 32-битный инсталлятор: [Twisted-15.4.0.win32-py2.7.msi|http://twistedmatrix.com/Releases/Twisted/15.4/Twisted-15.4.0.win32-py2.7.msi])

# *Python 2.7* [Сайт|https://www.python.org/downloads/] (прямая ссылка на 32-битный инсталлятор: [python-2.7.10.msi|https://www.python.org/ftp/python/2.7.10/python-2.7.10.msi])
# *PyGTK 2.24* [Сайт|http://www.pygtk.org/downloads.html] (прямая ссылка на 32-битный инсталлятор: [pygtk-all-in-one-2.24.2.win32-py2.7.msi|http://ftp.gnome.org/pub/GNOME/binaries/win32/pygtk/2.24/pygtk-all-in-one-2.24.2.win32-py2.7.msi])
# *PySerial 2.7* [Сайт|https://pythonhosted.org/pyserial/] (прямая ссылка на 32-битный инсталлятор: [pyserial-2.7.win32.exe|https://pypi.python.org/packages/47/c9/7802e11ab388ad1539de716649add8bb8ca8bdff660364b3a404f79c27b7/pyserial-2.7.win32.exe#md5=21555387937eeb79126cde25abee4b35])
# *PyWin32 build 221* [Сайт|https://sourceforge.net/projects/pywin32/] (ссылка на 32-битный инсталлятор: [pywin32-221.win32-py2.7.exe|https://sourceforge.net/projects/pywin32/files/pywin32/Build%20221/pywin32-221.win32-py2.7.exe/download])
# *zope.interface 4.1.3* [Сайт|https://zopeinterface.readthedocs.io] (прямая ссылка на 32-битный инсталлятор: [zope.interface-4.1.3.win32-py2.7.exe|https://pypi.python.org/packages/49/5f/ed5ea875af4e802198d035efe985d341d9b50edddbc22b785d2ef4b9eb66/zope.interface-4.1.3.win32-py2.7.exe#md5=e0a5bbc762126157b63d0233e26cc751])
# *Twisted 15.4.0* [Сайт|http://twistedmatrix.com/trac/wiki/Downloads] (прямая ссылка на 32-битный инсталлятор: [Twisted-15.4.0.win32-py2.7.msi|http://twistedmatrix.com/Releases/Twisted/15.4/Twisted-15.4.0.win32-py2.7.msi])

h3. 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_

Скрипт установки:
В файлер settings.py укажите:

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

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

Как настроить:
# Для работы нужен драйвер АТОЛ версии 10 или выше, его можно скачать в [центре загрузки АТОЛ|http://fs.atol.ru/SitePages/Центр загрузки.aspx] в разделе "*Контрольно-кассовая техника*".
Прямая ссылка на версию драйвера 10.6.0.0: [http://fs.atol.ru/...|http://fs.atol.ru/_layouts/15/atol.templates/Handlers/FileHandler.ashx?guid=d225fe2b-37a7-4251-ad72-9621eae7bc3b&webUrl=]

{note}Если используется Windows - обязательно устанавливайте 32-битную версию (архив/версия/installer/exe/KKT10-версия-windows32-setup.exe).{note}

# После скачивания архива скопируйте *libfptr10.py* (файл архив/версия/wrappers/python/) в папку с TrayProxy.

# Укажите в _settings.py_:
#* *KKM* - ATOL3
# Дополнительные опции для TrayProxy: возможность передать все настройки (их может быть много) в виде строки json
* *ATOL_SETTINGS* = параметры для ККМ, например:
#* *ATOL_SETTINGS* - параметры для ККМ, например:
{code}r'{"Port":"1"}'{code}


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

Теоретически, поддерживаются ККТ FPrint-55K, FPrint-22K, FPrint-11ПТК и FPrint-77ПТК, поддерживающие _протокол Атол версии 2.4 с включенным режимом совместимости 1.0_

Для оборудования с версией протокола 3\+ необходимо включить режим совместимости через драйвер идущий в поставке
!kkm_sec_kod.png|border=1! !kkm_sec_kod.png|border=0,width=450!

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

# TrayProxy
{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! \\ \\
h2. Настройка биллинга

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

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

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

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

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

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

h2. Драйвер не готов
Если Вы используете 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
# Выполните команду с биллинга
# Если в интерфейсе кассы появилась ошибка, сделайте скриншот
# Создайте заявку и приложите к ней:
#* Файл _debug.log_
#* Файл настроек _settings.py_
#* Скриншот ошибки