Пример печати чека на ККМ Атол посредством 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 |