Форум OlegON > Программы и оборудование для автоматизации торговли > Маркировка

Универсальный скрипт для получения токена ККТ : Маркировка

12.12.2024 14:32


12.09.2024 14:58
С подачи коллеги MWWRuza (спасибо ему за идею и за "толчок") - я "состряпал" скрипт для получения токена для ККТ.
Засовываем этот скрипт например в планировщик задач винды - и с определённой периодичностью получаем токен для ККТ.
Это станет актуально, когда токен ККТ станет динамическим (сейчас он статический, до марта 2025, если не перенесут сроки).
Но подготовиться к динамическому токену ККТ - мы с коллегой MWWRuza решили уже сейчас ;)

Суть работы скрипта в следующем:
запускаем батник c обязательным параметром (через пробел) - отпечатком действующего сертификата, т.е. так:
Код:
my_script.bat re23c...23df
(где re23c...23df - отпечаток)
по умолчанию - скрипт будет обращаться к продуктивному контуру ЧЗ,
но если нужно к "песочнице" (тестовому), то указываем вторым параметром 0, т.е. так:
Код:
my_script.bat re23c...23df 0
В результате -
скрипт зашифровывает произвольные данные сертификатом с помощью крипто-прошной утилиты, и отправляет их через curl в выбранный контур ЧЗ, а в ответ получает токен для ККТ.
Результаты работы (или ошибки) - записываются в лог, который появляется в директории со скриптом.
Так же в этой директории появляется два файла - один с подписанными данными crpt.access (как нужно коллеге student) и второй ИНН_token_kkt*.crpt (в котором в чистом виде токен для ККТ)

Если необходимо получить другие имена этих двух файлов, а также куда нибудь их скопировать с другими именами - то в каталог со скриптом просто нужно подложить два текстовых файлика:
copypatches_token.txt и copypatches_sig.txt
в которые прописать пути и имена файлов, которые вы хотите получить дополнительно к уже двум созданным.
Сколько строк будет в каждом таком файлике - по стольким путям и именам будут автоматически созданы копии.

В итоге - скрипт не требует никаких изменений внутри себя, абсолютно всеми результатами его работы можно управлять исключительно через два параметра и через содержимое файликов (образцы прикладываю в архиве)
Если файликов с путями нет - то и копироваться ничего не будет, а создадутся лишь два основных файла (какие - см. выше).

Скрипт проверен мною на трёх своих сертификатах (ФЛ, ИП, ООО и в реестре и на рутокенах), а также коллегой MWWRuza на двух сертификатах (ИП) - проблем не обнаружено
:)

PS. В архиве - сам скрипт, curl (который проверен), образцы файликов для копирования/переименования основных файлов в другие места.
Принцип работы:
распаковать архив в директорию, удалить (или отредактировать если нужно копирование) образцы файликов copypatches_token.txt и copypatches_sig.txt, запустить my_script.bat (указав необходимые параметры), наслаждаться результатом (проверив появившийся лог-файл)

Удачи
:)
Вложения
Тип файла: zip Универсальный_скрипт.ZIP (1.03 Мб, 54 просмотров)
12.09.2024 15:12
Скрипт специально создан в простейшем варианте (в текстовом пакетном файле bat) , для работы через интерпретатор командной строки, чтобы и мозги поднапрячь при его создании (альцгеймер то может подкрасться незаметно.. )), ну и чтобы показать (кому интересно) возможности командной строки..

В нём специально использованы разные способы получения порой идентичных значений, специально сделано подробное описание всех операций, так что кому интересно - можно его доработать, можно из него что-то взять на вооружение, а можно ничего не изменяя - использовать так как есть

Конечно же - и код можно "причесать" и упростить, но ещё раз повторю - задача была не в идеальном скрипте, а в универсальном.

И если кто-то создаст что-то похожее на другом языке - прошу тоже поделиться и опубликовать, будет всем полезно
;)
12.09.2024 15:18
динамический токен? омг только этого не хватало
12.09.2024 15:22
Цитата:
inklown22 динамический токен? омг только этого не хватало
Из методических рекомендаций:
Цитата:
• Срок действия токена ограничен датой 1 марта 2025 года. К этой дате требуется перейти на
целевую схему получения токена с помощью УКЭП, которая предполагает короткий срок
жизни (как сейчас работает jwt-токен ГИС МТ в TrueApi)
Поэтому - и возникла задача создать скрипт, который будет получать динамический токен с заданной в планировщике периодичностью..

Скрипт - создан, пользуйтесь (когда приспичит)
;)
12.09.2024 16:07
Ну, у меня задача получения токена не стояла, токен получает сама кассовая программа УКМWIN, ей для этого нужен только файлик содержащий произвольные данные подписанные ЭЦП. Дальше, кассовая программа сама делает запрос в ЦРПТ и получает токен.
Поэтому, мой изначальный скрипт был проще - и ему для работы нужен только КриптоПро с КЭП, никакие курлы и т.п. - не используются, это дело кассовой программы.
Мой примитивный вариант - во вложении.
Что он делает:

1. Создает файл произвольных данных(внутри просто строка 12345).
2. Подписывает его прикрепленной ЭЦП. КЭП находит по отпечатку, прописанному в текст скрипта.
3. Убирает переносы строк из получившегося файла.
4. Копирует его по всем кассам(пути прописаны в тексте скрипта).

А вот дальше... Писать скрипт руками, помещать в планировщик и т.д... Ленььь....
Поэтому написал в 1С обработку, вызываемую из настроек работы с кассами:



Она создает скрипт, сохраняет его, первый раз запускает, и помещает в консольный планировщик, с заданным интервалом.
Для этого используется виндовая консольная утилита SCHTASKS
Дальше, 1С больше не нужна - скрипт отрабатывает сам, с периодичностью, заданной при настройке.
Нужно только что-бы был включен компьютер и на нем был Криптопро с доступной КЭП пользователя ЧЗ.

PS Да, мой скрипт не обладает такой универсальностью как скрипт от volk13, но я такой задачи и не ставил, делал для конкретной связки учетной системы и кассовой программы.
Вложения
Тип файла: zip Skrypt.zip (411 байт, 27 просмотров)
12.09.2024 16:14
Цитата:
MWWRuza Да, мой скрипт не обладает такой универсальностью как скрипт от volk13, но я такой задачи и не ставил, делал для конкретной связки учетной системы и кассовой программы.
Зато - именно ТЫ сподвиг меня на создание именно универсального скрипта (а не только для 1С 77), так что - именно МЫ молодцы (а не каждый по отдельности)
И каждый из нас - заслуживает благодарности! (и я тебя - конечно-же благодарю (и за идею и за толчок и за тестирование на своей стороне), нажимая кнопочку "спасибо" в правом нижнем углу)
;)))
12.09.2024 16:23
Обменялись спасибками
"Кукушка хвалит петуха, за то, что хвалит он кукушку!"(С) - из какой-то басни, вроде дедушки Крылова, если память не изменяет...
12.09.2024 16:30
Цитата:
MWWRuza Обменялись спасибками
а чо - нормальная тема.. - ты мне, я тебе (вроде даже фильм советский есть с таким названием;)
:))

а если серьёзно - то всё-таки хочется в этой теме увидеть результаты проверки НАШИХ скриптов (если вдруг ошибки или косяки вылезут)
ну и -

другие бесплатные разработки на эту тему

Правка: volk13, 12.09.2024 16:33
12.09.2024 16:33
А это не одно и тоже, как сыр списывать или кеги на кран ставить? Я думал на это, и что со следующего года грозили ввести.
12.09.2024 16:34
Цитата:
volk13 вроде даже фильм советский есть с таким названием
Ага... Куравлев там банщика играл... Прикольный старый "ламповый" фильм
Часовой пояс GMT +3, время: 14:32.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.