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

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

13.12.2024 6:51


27.09.2024 15:12
Посмотрим. Ближе к "часу Х", думаю, будут более внятные комментарии.
Так, как это:
Цитата:
volk13 как сейчас работает jwt-токен ГИС МТ в TrueApi
Можно понять двояко - или только касаемо "короткого срока", или и схемы тоже.
Надо просто сейчас паузу взять... Рано "окончательные варианты" сейчас делать, слишком много "неизвестных" в этой задаче
27.09.2024 15:17
Корявая фраза "как сейчас работает...". Не написано конкретно, что будет токен от " ГИС МТ в TrueApi" использоваться, а только "как"...
Ну, косноязычия им не занимать
27.09.2024 18:57
Предлагаю очередной вариант скрипта для получения токена по схеме "Единая аутентификация":

В данной версии - в выходном файле json - кроме пар "token":"ключ_сессии" , "date":"Дата_получения_ключа", "time":"Время_получения_ключа"

добавлена пара "expires_in":"Временная_метка_протухания_токена_в_секундах_с_ начала_эпохи_Unix"

(по аналогии со значением expires_in в методе получения токена для ККТ : /auth/permissive-access)

т.е. - теперь выходной json-файл содержит кроме самого токена (ключа сессии), даты и времени его получения - временную метку timestamp (в параметре expires_in), которая формируется как timestamp на момент запуска скрипта + 36000 секунд (т.е. 10 часов, что является временем протухания токена).

Поэтому - теперь можно при анализе сроков "протухания" ключа ориентироваться как на date и time его формирования, так и на expires_in (в котором содержится timestamp его "протухания")
Кому как удобнее и привычнее

PS. Чтобы формировалась эта дополнительная пара в json-файле - необходимо рядом с файлом скрипта (в этот же каталог) - положить файл timestamp.bat (включён в прилагаемый zip-архив).
Ну а если файла timestamp.bat рядом со скриптом нет - то json-файл сфомируется как и раньше - лишь с тремя парами (а не с четыремя)
.
Вложения
Тип файла: zip 2024.09.27.1830_unifiedauth.zip (4.16 Мб, 10 просмотров)
28.09.2024 01:40
очередной вариант скрипта для получения токена по схеме "Единая аутентификация":

обнаружен и исправлен "косячок" с отсутствием лидирующих нулей в дате (если число меньше 10) и во времени (если час меньше 10)

т.е., например, вместо 1.10.2024 и 3:45 - теперь будет 01.10.2024 и 03:45 соответственно (в файле лога и в выходном json-файле)
.
Вложения
Тип файла: zip 2024.09.28.0130_unifiedauth.zip (4.16 Мб, 20 просмотров)
02.10.2024 16:30
Цитата:
volk13 В данной версии - в выходном файле json - кроме пар "token":"ключ_сессии" , "date":"Дата_получения_ключа", "time":"Время_получения_ключа":
.
В файле с токеном , похоже , лишняя закрывающая скобка в конце тега "token"
Код:
{"token":"eyJ0eXAi ...... 7_DP0AM"},"date":"02.10.2024","time":"18:10","expires_in":"1727928647"}
02.10.2024 17:52
Цитата:
Евгений67 В файле с токеном , похоже , лишняя закрывающая скобка в конце тега "token"
проверил у себя - не обнаружил:
Цитата:
...dWOQG4mi2G067yca_E","date":"02.10.2024","time":"15:00","expires_in":"1727917200"}
02.10.2024 17:59
Цитата:
Евгений67 лишняя закрывающая скобка
сообщите - на какой Windows запускаете скрипт? (я тестировал на Win7 и WinServer_2008)
закрывающая скобка убирается в скрипте вот этой командой:
Цитата:
mshta "about:<hta:application id=xxx />:<script>f=new ActiveXObject('Scripting.FileSystemObject').GetFile(xxx.commandLine.replace(/".*"[\t ]+/g,'').replace(/\\/g,'\\\\'));x=f.OpenAsTextStream();s=x.ReadAll().substr(0,f.Size - 1);x=f.OpenAsTextStream(2);x.Write(s);x.Close();window.close();</script>" %filename%
проверьте, что в виндовс у вас доступна mshta:
Цитата:
Mshta.exe — это исполняемый файл в Windows, разработанный корпорацией Microsoft. Он является объектом запуска Microsoft HTML Application — программы, которая отвечает за работу HTML-приложений (.hta файлы) и запуск сценариев в Windows.
По умолчанию файл находится в директории C:\Windows\System32. В «Диспетчере задач» отображается только в случае работы приложений, использующих Microsoft Scripting Host (HTML-компонент)
02.10.2024 18:07
Цитата:
volk13 закрывающая скобка убирается в скрипте вот этой командой:
по другому (например обрезанием последнего символа строки) в cmd (bat-файле) - последний символ (в данном случае закрывающую скобку) - не удалить, т.к. ранее я уже сообщал:
Цитата:
volk13 т.к. скрипт написан для CMD, а CMD не позволяет работать со строками длиннее 8191 символа (обрезает, если строка длиннее).. А токен единой аутентификации - в несколько раз длиннее.
02.10.2024 21:11
Цитата:
volk13 сообщите - на какой Windows запускаете скрипт? (я тестировал на Win7 и WinServer_2008)
закрывающая скобка убирается в скрипте вот этой командой:
проверьте, что в виндовс у вас доступна mshta:
Тестировал на Win 7 у клиента
mshta выдает сообщение - Отказано в доступе
Этот же текст виден и при запуске скрипта unifiedauth
Все скрипты запускаю от имени администратора

У меня Win 10 - mshta завершается ошибкой сценария
Миниатюры
Нажмите на изображение для увеличения
Название: 11.jpg
Просмотров: 27
Размер:	75.9 Кб
ID:	12566   Нажмите на изображение для увеличения
Название: 3.jpg
Просмотров: 26
Размер:	63.7 Кб
ID:	12567   Нажмите на изображение для увеличения
Название: er_mshta.jpg
Просмотров: 22
Размер:	65.8 Кб
ID:	12568  
02.10.2024 21:30
Цитата:
Евгений67 mshta выдает сообщение - Отказано в доступе
На текущий момент вы можете полноценно использовать вот эту версию скрипта (в json будет лишь один "token", а других параметров (дата, время, и timestamp) - не будет, но зато не будет и подобных ошибок).
Насчёт доступа - не могу пока ничего посоветовать, т.к. тут дело уже не в скрипте, а в правах на ваших компьютерах
Часовой пояс GMT +3, время: 06:51.

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