Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Модератор: Дед Пахом

Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

Привет всем !

Класс для выполнения разрешительной проверки КМ (кодов маркировки)
через API ГСЦМ "Честный ЗНАК" (ГИС МТ + ПО Локальный Модуль) и ТС ПИоТ.

Полный боевой комплект с описанием интерфейса API и примерами.

Реализованный в классе функционал полностью соответствует ПФС ЦРПТ (версия 1.10 / 21 сценарий)
для получения сертификата совместимости и допуска в промышленную среду работы с ТС ПИоТ. 😎

Благодарность за помощь на старте проекта: FinsoftRZ и Alex412.
Любые замечания, исправления и дополнения - приветствуются !
----------------------------------------------------------------------------------------------------
НАСТОЯТЕЛЬНО рекомендуем использовать актуальные версии классов LibCURL, cJSON и PrintF.

2.jpg
Вложения
Honest-2026-02-16.rar
Версия от 16.02.2026 г.
(37.25 КБ) 0 скачиваний
Последний раз редактировалось Игорь Столяров 17 Февраль 2026, 6:42, всего редактировалось 62 раза.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
zmi
Посетитель
Сообщения: 29
Зарегистрирован: 26 Октябрь 2017, 21:51

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение zmi »

Игорь Столяров писал(а): 15 Февраль 2026, 15:31 Если у Вас есть официальная информация об ограничении срока действия токена - поделитесь пожалуйста ссылкой.
Есть только официальный ответ службы поддержки ЧЗ от 04.02.2026 на наш запрос:
"...В соответствии с Постановлением Правительства РФ от 21.11.2023 № 1944 (в ред. ППРФ от 22.11.2024 № 1606) с 1 марта 2026 г. становится обязательным разрешительный режим онлайн и офлайн проверки на контрольно-кассовой технике (ККТ) для кормов для животных.
Следовательно с 1 марта 2026 года необходимо при проверке маркированного товара использовать ТС ПИоТ.
Кассовое программное обеспечение участника оборота сможет технически взаимодействовать с ГИС МТ и Локальным Модулем по действующим протоколам обмена до истечения срока действия токена X-API-KEY (до 1 марта 2026 года).
При взаимодействии ТС ПИоТ с разрешительным режимом используется API ТС ПИоТ. ТС ПИоТ возвращает ответ от онлайна или офлайна (Локального Модуля).
Для отправки запросов онлайн или офлайн проверки необходимо установить ТС ПИоТ и интегрировать с ним кассовое ПО.
Если у Вас самописное кассовое ПО, то необходимо пройти экспертизу у Оператора ЦРПТ и для уточнения программы прохождения экспертизы по интеграции ПО с ТС ПИоТ, рекомендуем обратиться на почтовый адрес: ts_piot@crpt.ru"
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

zmi писал(а): 15 Февраль 2026, 18:06 Кассовое ПО сможет технически взаимодействовать до истечения срока действия токена X-API-KEY (до 1 марта 2026 года).
Полностью согласен с каждым словом из написанного.
Так а где написано, что ПО после 01.03.2026 г. НЕ СМОЖЕТ взаимодействовать ? :D

Открываем методические рекомендации и смотрим самый первый метод:

1.jpg

Т.е. берём текст "Свободу Анджеле Девис !", подписывает зарегистрованной в ЦРПТ УКЭП и делаем запрос.
В ответ получаем сессионый токен, с которым работаем также, как и с полученным в ЛК (тот, что валидный до 01.03.2026 г.)

А ТС ПИоТ - это уже совсем другая история про ЦРПТ и друга его ЕСП ... 8)
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5818
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 85 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение finsoftrz »

Для получения сессионного токена укэп не нужна. Мы его уже давно используем вместо того, который в ЛК ЧЗ.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

finsoftrz писал(а): 15 Февраль 2026, 19:05 Для получения сессионного токена укэп не нужна.
Абсолютно верно ! Нужен произвольный текст подписанный УКЭП. :D

1.jpg
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
finsoftrz
✯ Ветеран ✯
Сообщения: 5818
Зарегистрирован: 06 Ноябрь 2014, 12:48
Благодарил (а): 24 раза
Поблагодарили: 85 раз

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение finsoftrz »

Сорян, это я попутал. Для списания марок и постановки кег на кран на компьютере товароведа запрашиваем сессионный токен, там нужен укэп и крипто про. А на кассах пока просто сделали хранение токена (который из ЛК ЧЗ) в отдельном json файле, чтобы в дальнейшем можно было этот файл формировать с сессионным токеном на компьютере товароведа и передавать на кассы.
C6/C12, ШВС, tps/btrieve.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

Всем привет !

Обновление версия класса для API НСЦМ «Честный ЗНАК» / ТС ПИоТ.
-------------------------------------------------------------------------------
- Добавлена перекодировка наименования и версии ПМСР в UTF-8;
- Метод PIoT_CheckCodes() возвращает реальный HTTP статус без костылей;
- Добавлена проверка в ПО ЛМ ЧЗ при неработающем ТС ПИоТ (статус 514 - 520);
- Добавлена обработка HTTP статусов 5XX при отсутствии ответа ГИС МТ;
- В процедуру Honest::PulseOnLine() добавлены ссылки на ресурсы ТС ПИоТ;
- В окно диагностики Honest::PIoT_ViewInfo() добавлены данные о ПО ЛМ;
- Устранены проблемы с пустыми тегами в JSON-запросах;
- Скорректированы сообщения об ошибках разрешительной проверки;
- Отработаны мелкие помарки по запросам.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
zmi
Посетитель
Сообщения: 29
Зарегистрирован: 26 Октябрь 2017, 21:51

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение zmi »

Всем привет!
Сделал пример. В токене прописал абракадабру (с реальным токеном визуально ничего не меняется).
Почему же у меня не находятся КМ?
Вложения
_TestRun.7z
тест ПИоТ
(1.71 МБ) 6 скачиваний
мой результат
мой результат
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

zmi писал(а): 16 Февраль 2026, 13:06 Почему же у меня не находятся КМ?
Спасибо за пример. Видимо что-то случилось. Причём конкретно у Вас.
Просто собрал Ваш пример и выполнил. Результат правильный до безобразия:

1.jpg

Также прикрепляю файл с JSON ответом сервиса из папки DEBUG - в нём всё ожидаемо и правильно.
(нужно распаовать архив, т.к. форум не поддерживает вложения JSON)

У меня замечаний и вопросов к Вашему тесту нет. :D
Вложения
Honest_PIoT_CheckCodes_Response.zip
(665 байт) 6 скачиваний
Последний раз редактировалось Игорь Столяров 16 Февраль 2026, 14:02, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

zmi писал(а): 16 Февраль 2026, 13:06Сделал пример.
Кстати интересный момент.
Если Вы действительно показали картинку с приложенного исходника, то почему у Вас коды идут в обратном порядке ?
Они должны идти в том же порядке, что и добавляются в примере. Как на моей картинке в сообщении.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
zmi
Посетитель
Сообщения: 29
Зарегистрирован: 26 Октябрь 2017, 21:51

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение zmi »

Игорь Столяров писал(а): 16 Февраль 2026, 13:55 Если Вы действительно показали картинку с приложенного исходника
Коды как раз-таки идут в том же порядке, диагностика к ним неправильная. При этом в файле с ответом из папки DEBUG - корректная.
Есть вариант, что обновить среду надо, или совсем наряд ли? CW 11.0.0.13401 EE
А если не компилить, то какой результат?
Игорь, а можно мой откомпилированный у Вас пример вернуть (с ddl-ками), чтоб исключить этот вариант?
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

1. Запустил Ваш EXE без пересборки - получил картинку как у Вас (коды в обратном порядке и непонятные ошибки).
2. Смотрим ответ сервиса. У Вас какая-то проблема с классом cJSON - неправильно формируются коды с символом "<29>"

Обновите класс JSON с сайта автора (ссылка есть в шапке) и попробуйте пересобрать.
Я сейчас сброшу Вам свою сборку.

1.jpg
Последний раз редактировалось Игорь Столяров 16 Февраль 2026, 14:35, всего редактировалось 1 раз.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

Просто пересобрал. Даже исходник не открывал. И всё заработало. Проверьте у себя.
Вложения
_TEST.zip
(2.51 МБ) 5 скачиваний
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

И библиотеку PrintF() тоже обновите до текущей.
Там давно была "особая" кодировка в BASE64, но недавно исправили до нормальной.
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
zmi
Посетитель
Сообщения: 29
Зарегистрирован: 26 Октябрь 2017, 21:51

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение zmi »

Игорь Столяров писал(а): 16 Февраль 2026, 14:23 Обновите класс JSON с сайта автора
Черт побери! Оба класса LIBCURL и JSON обновлял где-то месяц назад, когда с предыдущей ошибкой ЛМ ЧЗ разбирался. Обновил JSON - не помогло. Но JSON использует PrintF, а он от 24-го года у меня был, оказывается.
Обновил PrintF, и заработало "ожидаемо и правильно"! СПАСИБО!!! И мои извинения за беспокойство!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 8510
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 36 раз
Поблагодарили: 123 раза

Класс для API ГСЦМ «Честный ЗНАК» / ТС ПИоТ

Сообщение Игорь Столяров »

Пожалуйста ! Компоненты в наше время решают всё ...
Меня здесь иногда спрашивают почему я не использую доставшиеся от бабушки библиотеки ? Так вот потому ! :D
За теми, кто отстал, не возвращаться ! 🏴‍☠️ Кодекс
Ответить