Установка драйвера АТОЛ-30ф на Ubuntu 24.04

Author Автор: Роман Чернышов   

АТОЛ Linux Приветствую вас друзья! Переношу свое программно-техническое оснащение на новые сервера под управлением Ubuntu 24.04(26.04), в виду чего публикую небольшой пост заметку по установке и настройке драйверов для ККТ АТОЛ-30ф. Ранее я публиковал небольшой пост-заметку по настройке для CentOS 7(более не актуальна). Напомню, подключение АТОЛ-30ф к серверу позволяет использовать данную ККТ как облачную онлайн кассу с отправкой чеков в ОФД и экономить на аренде облачных ККТ у сторонних провайдеров(до 100т.р./в год), помимо экономии это также добавляет ряд других интересных возможностей (написание своего софта для создания отчетов, аналитики или КУДиР — об этом расскажу позже).

Установка драйверов

Скачиваем архив драйверов версии 10.10.8.0 (или новее) тут, в зависимости от разрядности операционной системы 32 или 64 бит, устанавливаем нужный набор deb-пакетов, я буду ставить amd64.

Заметка! В моем случае именно версия 10.10.8.0, потому что у меня вечная лицензия на Web Requests именно для этой версии драйверов (более старшие версии не поддерживаются).

Из архива \10.10.8.0\installer\deb\ получаем список DEB пакетов:

  1. libfptr10_10.10.8.0_amd64_uem.deb
  2. libfptr10_10.10.8.0_amd64.deb
  3. fptr10-test-util_10.10.8.0_amd64.deb
  4. fptr10-web-requests_1.0.4.0_amd64.deb

Затем поочередно(очередность имеет значение, т.к. пакеты имеют зависимость друг от друга) устанавливаем пакеты командой:

sudo apt install ./fptr10-web-requests_1.0.4.0_amd64.deb

Установка EoT (Ethernet Over Transport)

Подробно описано тут.

Для целостности инструкции, далее перепечатаю часть инструкции ранее написанной мною для CentOS.

Настройка Web Request

Тест доступа Web Request по http

wget 127.0.0.1:16732

Как задать логин и пароль для доступа указано ниже

Создание пользователя

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 входящий в его пакет. Я в своих решения использую nGginx + Apache(можно было бы обойтись и чем-то одним, но из-за особенностей доступа к открытым портам такая конфигурация):

/etc/nginx/conf.d/domains/atol.conf

server {
    listen 80;
    server_name atol.localhost;
 
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
 
        access_log /var/log/nginx/atol.localhost.log combined;
        access_log /var/log/nginx/atol.localhost.bytes  bytes;
        expires    max;
 
    }
}

/etc/apache2/conf.d/domains/atol.conf

    <VirtualHost 10.0.0.101:8080>
    ServerName atol.localhost
 
    ProxyRequests Off
 
    ProxyPreserveHost On
 
    # for windows
 
    ProxyPass / http://10.0.0.101:16732/
    ProxyPassReverse / http://10.0.0.101:16732/
 
    RequestHeader unset X-Forwarded-For
    RequestHeader unset X-Forwarded-Host
    RequestHeader unset X-Forwarded-Proto
 
    # Этот ваш IP будет видеть Wed Request
    RequestHeader set X-Forwarded-For "10.0.0.149"
 
    <Proxy *>
        Require all granted
    </Proxy>
 
    ErrorLog "/var/log/apache2/atol-proxy-error.log"
    CustomLog "/var/log/apache2/atol-proxy-access.log" common
 
    </VirtualHost>

Теперь для всех клиентов, Web Request будет доступен по адресу http://atol.localhost:80, при этом каким бы ни был IP-адрес клиента, Web Request будет видеть всегда один IP (в примере конфигурации это 10.0.0.149) и ограничивать запросы не будет.

Для доступа к локальному домену, можно также прописать настройку в файле хоста ОС (для Windows это C:\Windows\System32\drivers\etc\hosts), связав домен с неконкретным IP в локальной сети:

10.0.0.101 atol.localhost

Дополнительно

Может потребоваться настройка Apache, а именно включение модуля прокси:

# Включить модули
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_connect
 
# Проверить загрузку
apache2ctl -M | grep proxy
 
# Должны быть:
# proxy_module (shared)
# proxy_http_module (shared)
# proxy_connect_module (shared)

Также может потребовать открыть порт 16732:

sudo iptables -A INPUT -p tcp --dport 16732 -j ACCEPT

Пример запроса на 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;

Оставить комментарий

Автор блога
Роман Чернышов
Веб-разработчик,
Full Stack
Senior, Architect
PHP, JavaScript, Node.JS, Python, HTML 5, CSS 3, MySQL, Bash, Linux Admin
Заказать работу
предложить оффер

Моя книга
Книга. Веб-разработчик. Легкий вход в профессию
Печатная книга
Веб-разработчик.
Легкий вход в профессию
Купить за 359₽
Популярные записи
Последние вопросы
Список вопросов
Последние комментарии
Меню

Archive

Мои проекты
Insurance CMS Love Crm CMS Совместные покупки Мой PHP Framework Хостинг для моих клиентов Лицензии на мой софт и поддержка