Что не так с запросом информации о коде маркировки?

1. Berrimor 198 09.12.23 07:38 Сейчас в теме
ЗаголовокHTTP = Новый Соответствие();
ЗаголовокHTTP.Вставить("Content-Type", "application/json; charset=utf-8");
ЗаголовокHTTP.Вставить("Accept-Charset", "utf-8");
ЗаголовокHTTP.Вставить("X-API-KEY", КлючСессии);

URLЗапроса = "api/v4/true-api/codes/check";

Запрос = Новый HTTPЗапрос(URLЗапроса, ЗаголовокHTTP);
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }", КодировкаТекста.UTF8);

Соединение = Новый HTTPСоединение("markirovka.crpt.ru", 443,,,,2,Новый ЗащищенноеСоединениеOpenSSL());
Ответ = Соединение.ОтправитьДляОбработки(Запрос);

ТекстОтвета = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);

Возвращается {"code":500,"description":"400 BAD_REQUEST \"Failed to read HTTP message\"","codes":[]}
Подскажите что не так?
По теме из базы знаний
Найденные решения
6. Berrimor 198 09.12.23 16:16 Сейчас в теме
Ошибка глупейшая!!!
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }");

codes это массив кодов!
Верный текст такой

Запрос.УстановитьТелоИзСтроки("{ ""codes"": ["""+СокрЛП(КодМаркировки)+"""] }");

Всем спасибо!
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
11. krotik 28.03.24 10:44 Сейчас в теме
(1) Скажите, а дальше Вы прошли? Теперь результат проверки надо послать в кассу. Если это Атол, Вы не знаете в какие тэги надо писать результат проверки?
2. Berrimor 198 09.12.23 07:41 Сейчас в теме
Да, КлючСессии взят на сайте Честный Знак в профиле из поля "Токен для контрольно-кассовой техники"
https://markirovka.ru/community/rezhim-proverok-na-kassakh/rezhim-proverok-na-kassakh
3. Berrimor 198 09.12.23 07:44 Сейчас в теме
Если запрос отправлять в песочницу markirovka.sandbox.crptech.ru, то возвращает
{"code":401,"description":"Unknown X-Api-Key","codes":[]}
4. user1880116 09.12.23 08:53 Сейчас в теме
У метода УстановитьТелоИзСтроки три параметра.
5. Berrimor 198 09.12.23 16:10 Сейчас в теме
(4) Не должно быть, а может быть и три параметра! В данном случае хватило бы и одного первого.
Вопрос скорее не где я сделал ошибку в запросе, а почему сервис запроса информации не работает согласно заявленному честным знаком функционалу?
6. Berrimor 198 09.12.23 16:16 Сейчас в теме
Ошибка глупейшая!!!
Запрос.УстановитьТелоИзСтроки("{ ""codes"": """+СокрЛП(КодМаркировки)+""" }");

codes это массив кодов!
Верный текст такой

Запрос.УстановитьТелоИзСтроки("{ ""codes"": ["""+СокрЛП(КодМаркировки)+"""] }");

Всем спасибо!
7. krotik 27.03.24 11:15 Сейчас в теме
а мне на данный запрос приходит ответ
{"timestamp":"2024-03-27T08:13:11.244+00:00","path":"/legacy/api/v1/codes/check/","status":404,"error":"Not Found","message":null,"requestId":"2c4b5a50-12200777"}

совершенно не понимаю, при чем тут legacy/api/v1/codes/check если я посылаю запрос на
https://markirovka.crpt.ru/api/v4/true-api/codes/check

Правда, в отличие от ТС я пользуюсь не HTTPЗапрос, а WinHttp:

WinHttp = Новый COMОбъект("WinHttp.WinHttpRequest.5.1");
попытка
WinHttp.Open("POST", "https://markirovka.crpt.ru/api/v4/true-api/codes/check/",0);
WinHttp.SetRequestHeader("X-API-KEY", Токен);
WinHttp.SetRequestHeader("Content-Type", "application/json; charset=utf-8");
WinHttp.SetRequestHeader("Accept-Charset", "utf-8");

СтрокаЗапроса = "{""codes"":[""" + СтрЗаменить(Код, """", "\""")+"""], ""inn"":""здесь наш ИНН""}";
//СтрокаЗапроса = "{""codes"":[""" + СтрЗаменить(Код, """", "\""")+"""]}";
WinHttp.SetTimeouts(1000, 1000, 1000, 1000);
WinHttp.Send(СтрокаЗапроса);
РезультатСтр = WinHttp.ResponseText(1400);
Сообщить(ПреобразоватьСтрокуИзУТФ8(РезультатСтр))
Исключение
Сообщить(СокрЛП(РезультатСтр) + " - " + ОписаниеОшибки());
КонецПопытки;
8. krotik 27.03.24 12:29 Сейчас в теме
(7) разобрался в ситуации:
1. надо получить список контуров и отправлять запрос на контур из списка. желательно еще перед этим определить какой контур наиболее близкий. Т.е. указанный автором топика контур markirovka.crpt.ru для данного запроса уже не канает с 12 февраля этого года.
2. в коде перед 8005 и пелед 93 и перед 240 надо ставить \u001d
Вот исходный код:
010460620309799921yEM1!K9800526900093CbP6240FA083231.05
вот что надо посылать в запросе:
010460620309799921yEM1!K9\u001d8005269000\u001d93CbP6\u001d240FA083231.05

ответы на вопросы нашел здесь:
https://честныйзнак.рф/upload/2023_09_01_методические_рекомендации_в01_3_rev_и_о­флайн_2.pdf
9. danxai84 27.03.24 18:21 Сейчас в теме
Кто-нибудь пробовал передать сразу несколько КМ? У меня не получается. Если в массиве 1 КМ, то ответ приходит, если несколько - то ошибка 4хх.
10. danxai84 28.03.24 08:20 Сейчас в теме
все, нашел косяк, проблема была в самой КМ
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот