Пример печати чека на ККМ Атол посредством JavaScript
Накопал на просторах интернета.. Выложил, чтоб подсматривать саму методику работы. Принцип на любом языке одинаковый.
Жизнь замечательных грибов
Накопал на просторах интернета.. Выложил, чтоб подсматривать саму методику работы. Принцип на любом языке одинаковый.
1) Выставим в драйверах канал обмена с ОФД EoU:
EthernetOverUsb, распаковывем её в любую папку, выставляем права на запуск для файлов EthOverUsb и EthOverUsb.sh
3) Смотрим на какой pid у нашей ККМ:
1 2 3 4 5 6 7 8 |
root@manager2:~/kkm_online/EthernetOverUsb# lsusb Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub Bus 002 Device 003: ID 2912:0005 Bus 002 Device 004: ID 065a:0001 Optoelectronics Co., Ltd Barcode scanner Bus 002 Device 005: ID 0458:003a KYE Systems Corp. (Mouse Systems) NetScroll+ Mini Traveler / Genius NetScroll 120 |
4) Изменяем его в файле settings.ini
Для запуска в режиме отладки, можно использовать
1 |
./EthOverUsb.sh -e |
Для повседневной работы, нужно запуск скрипта положить в автозагрузку
Она же:
1 |
sudo: не удаётся инициализировать модуль политики |
Такая ошибка может возникнуть после не верного редактирования файла /etc/sudoers. Что делать?
Запускаем:
1 |
pkexec visudo |
И исправляем файл.
1) Ставим официальный клиент из портов
1 2 |
cd /usr/ports/security/py-certbot/ make install clean |
2) Получаем SSL сертификат
1 |
certbot certonly --agree-tos --email ferfe@mail.ru --webroot -w //usr/local/www/apache24/ssl/mail/ -d mail.domen.ru |
Сертификаты будут автоматически помещены в
1 |
/usr/local/etc/letsencrypt/live/mail.domen.ru |
3) Настраиваем Apache
Настройка сводится к изменению строчек в httpd-ssl.conf . Предполагается, что самоподписанный сертификат корневой, у вас уже установлен и сгенерирован.
1 2 3 |
SSLCertificateFile "/usr/local/etc/letsencrypt/live/mail.domen.ru/cert.pem" SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/mail.domen.ru/privkey.pem" |
4) В крон помещаем строчку на выполнение раз в месяц:
1 |
certbot certonly -renew --agree-tos --email ferfe@mail.ru --webroot -w //usr/local/www/apache24/ssl/mail/ -d mail.domen.ru |
Оставляю код процедуры для «истории».
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
CREATE PROCEDURE `GetInfo`(IN `mac_sw` VARCHAR(20), IN `port_sw` VARCHAR(20)) NOT DETERMINISTIC CONTAINS SQL SQL SECURITY DEFINER BEGIN DECLARE value2 varchar(200); DECLARE type2 int(11); DECLARE code2 int(11); DECLARE cnt INT(10); DECLARE DONE integer default 0; DECLARE ip_cur CURSOR FOR SELECT code, type, value FROM dhcp_subnets where segment_id in (SELECT segment_id FROM dhcp_clients_by_relay WHERE upper(relay_id) = upper(mac_sw) AND upper(relay_port) = upper(port_sw)) UNION SELECT code, type, value FROM dhcp_clients_by_relay WHERE upper(relay_id) = upper(mac_sw) AND upper(relay_port) = upper(port_sw) ORDER BY CODE; DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET done=1; OPEN ip_cur; SET cnt=0; REPEAT FETCH ip_cur INTO code2,type2,value2; IF NOT DONE THEN SELECT code2 as code,type2 as type,value2 as value; END IF; SET cnt=cnt+1; UNTIL DONE END REPEAT; CLOSE ip_cur; IF cnt=1 THEN SELECT 1 as code,5 as type,"255.255.224.0" as value; SELECT 3 as code,5 as type,"172.30.128.1" as value; SELECT 6 as code,5 as type,"11.163.82.1,8.8.8.8" as value; SELECT 15 as code,4 as type,"цывацу.ru" as value; SELECT 51 as code,2 as type,"86400" as value; SELECT 1009 as code,5 as type,CONCAT("172.30.",ROUND((RAND() * (254 - 0)) + 0),".",ROUND((RAND() * (254 - 0)) + 0)) as value; END IF; END |