Подключение АТОЛ-30ф к серверу на Linux
Небольшая заметка о базовой настройке ККТ АТОЛ 30ф и схожих моделей(поддерживающих Web Request) на ОС Linux (в моем примере это CentOS), установка драйвера 10.0.8.1, с поднятием сервера Web Request и примером кода запроса на PHP. Скачать пакет драйверов можно тут, для Linux подойдет «полный архив», в нем будет директория ./install/ с вариантами пакетов для Debian, RedHat, FreeBSD. Такое решение позволяет существенно сократить издержки на аренде онлайн-кассы, его можно интегрировать например с сайтом.
Установка пакетов
Установка драйвера:
yum install /home/libfptr10-10.10.8.0-1.x86_64_uem.rpm |
Установка Web Request:
yum install /home/fptr10-web-requests-1.0.4.0-1.x86_64.rpm |
Установка EoT (Ethernet Over Transport):
Подробно описано тут.
Дополнительно если нужно можете установить:
libfptr10-gui — графическая библиотека драйвера ККТ. Предоставляется в вариантах с Qt5 (основной вариант) и Qt4;
fptr10-test-util — тестовое приложение драйвера ККТ. Предоставляется в вариантах с Qt5 (основной вариант) и Qt4;
fptr10-rpc-server — сервер удаленного подключения ККТ.
Тест доступа Web Request по http:
wget 127.0.0.1:16732 |
Как задать логин и пароль для доступа указано ниже
Настройка Web Request
Создание пользователя
atol-fptr-web-requests-users add admin Password |
Где логин — admin, пароль — Password.
Список пользователей
atol-fptr-web-requests-users list |
Удалить пользователя
atol-fptr-web-requests-users del admin |
Для доступа к Web Request с разных IP
Web Request ограничивает доступ, позволяя отправлять к нему запросы только с одного IP, с возможностью смены его раз в сутки. Поэтому, можно перед Web Request установить проксирующий сервер, это может быть Apache или nGinx, в случае с Windows, на локальном ПК можно использовать XAMMP и Apache входящий в его пакет. Я в своих решения использую Apache, с такой конфигурацией:
<VirtualHost 10.0.0.101:8080 >
ServerName atol.localhost
ProxyPreserveHost On
ProxyPass / http://10.0.0.101:16732/ # IP и порт на котором находится Web Request
ProxyPassReverse / http://10.0.0.101:16732/
RequestHeader unset X-Forwarded-For
RequestHeader unset X-Forwarded-Host
RequestHeader unset X-Forwarded-Proto
RequestHeader set X-Forwarded-For "10.0.0.102" # IP который будет видеть Web Request (не зависимо от того какой реальный IP у пользователя)
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ErrorLog "logs/proxy-error.log"
CustomLog "logs/proxy-access.log" common
</VirtualHost> |
Теперь для всех клиентов, Web Request будет доступен по адресу http://atol.localhost:8080, при этом каким бы ни был IP-адрес клиента, Web Request будет видеть всегда один IP (в примере конфигурации это 10.0.0.102) и ограничивать запросы не будет.
Для доступа к локальному домену, можно также прописать настройку в файле хоста ОС (для Windows это C:\Windows\System32\drivers\etc\hosts), связав домен с неконкретным IP в локальной сети:
10.0.0.101 atol.localhost |
Пример запроса на PHP с помощью CURL
$ch = curl_init(); // URL запроса curl_setopt($ch, CURLOPT_URL, 'http://atol.localhost:8080'); // Возвращать результат в переменную, а не выводить в браузер curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // Basic авторизация curl_setopt($ch, CURLOPT_USERPWD, 'username:password'); # логин и пароль доступа к АТОЛ Web Request // Заголовки curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Content-Type: application/json', 'Accept: application/json', 'User-Agent: MyApp/1.0', 'Host: atol.localhost' # название хоста указанного в Apache ]); // Выполняем запрос $response = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); // Проверяем на ошибки if (curl_error($ch)) { echo 'Ошибка cURL: ' . curl_error($ch); } curl_close($ch); echo "HTTP код: " . $httpCode . "\n"; echo "Ответ: " . $response; |
Если вам нужна помощь в настройке АТОЛ или прочие работы связанные с администрированием серверов работающих на безе ОС Linux, обращаетесь, буду рад вам помочь!

Автор:






