- Подготовка производственной площадки к маркировке
- Сроки внедрения маркировки для производителей: что нужно знать малым, средним и крупным?
- Оборудование для маркировки: какое нужно и что пригодится из того, что у вас уже есть?
- Состав кода маркировки молочной продукции
Необходимо авторизоваться или зарегистрироваться на портале
Списание весового сыра(Фасовка) используя API (C#). 33: Данные электронной подписи не соответствуют текущему участнику.
Добрый день. Пытаюсь освоить списание весового сыра через API, но получаю ошибку 33: Данные электронной подписи не соответствуют текущему участнику.
При попытке произвести списание через ЛК, ошибок не получаю. Шаблон CSV верный.
Как я пытаюсь использовать API
1. Выполняю GET запрос. Запоминаю UUID, сохраняю в файл DATA.
2. Используя Крипто Про cryptcp.x64.exe Выполняю подписание файла
1. Выполняю GET запрос. Запоминаю UUID, сохраняю в файл DATA.
2. Используя Крипто Про cryptcp.x64.exe Выполняю подписание файла
3. Выполняю POST запрос. Вставляю ранее запомненный UUID и добавляю ново подписанную сертификатом строку. На выходи получаю валидный токен ЧЗ. (Работу проверял всякими запросами. Данные получаю.)
4. Выполняю POST запрос по Выводу из оборота. Где то тут, мне кажется и кроется ошибка.
URL - BaseUrl + «/lk/documents/create?pg=milk»
Данные запроса у меня такие:
DocumentRequest documentRequest = new DocumentRequest
URL - BaseUrl + «/lk/documents/create?pg=milk»
Данные запроса у меня такие:
DocumentRequest documentRequest = new DocumentRequest
{
document_format = «CSV»,
product_document = documentBase64,
type = «LK_RECEIPT_CSV»,
signature = signature
};
documentBase64 - это прочитанный и преобразованный в base64 документ-шаблон , с заполненными КИ и остальными данными. Никаких форматирований не производил. Просто сохранил в .txt
signature - Вот тут я не нашел понятной для себя информации. Но наверное, нужно подписать documentBase64 открепленной подписью. Я это пытаюсь выполнить с помощью Крипто Про консольной программы. Команда выглядит так - $@«»«C:\Program Files\Crypto Pro\CSP\cryptcp.x64.exe»« -sign -detached -thumbprint {thumbprint} {DataFileCheese}»;
Используется отпечаток сертификата и название файла, куда мы сохранили зашифрованный документ documentBase64
На выходе я получаю файл с расширением .sgn
Если взять этот documentBase64 документ и открепленную подпись, они проходят онлайн проверки на валидность. Далее выполняется финальная часть - запрос. Он проходит успешно, я получаю ответ - ID документа. Он сразу появляется на сайте ЧЗ, но с ошибкой 33. В чем может быть проблема?
documentBase64 - это прочитанный и преобразованный в base64 документ-шаблон , с заполненными КИ и остальными данными. Никаких форматирований не производил. Просто сохранил в .txt
signature - Вот тут я не нашел понятной для себя информации. Но наверное, нужно подписать documentBase64 открепленной подписью. Я это пытаюсь выполнить с помощью Крипто Про консольной программы. Команда выглядит так - $@«»«C:\Program Files\Crypto Pro\CSP\cryptcp.x64.exe»« -sign -detached -thumbprint {thumbprint} {DataFileCheese}»;
Используется отпечаток сертификата и название файла, куда мы сохранили зашифрованный документ documentBase64
На выходе я получаю файл с расширением .sgn
Если взять этот documentBase64 документ и открепленную подпись, они проходят онлайн проверки на валидность. Далее выполняется финальная часть - запрос. Он проходит успешно, я получаю ответ - ID документа. Он сразу появляется на сайте ЧЗ, но с ошибкой 33. В чем может быть проблема?
К новым комментариям
П
Интереса ради запустил утилиту «Инструменты Крипто ПРО». Там выбрал файл с документом в base64, поставил галочку «Создать отсоединенную подпись». Подпись засунул в base64. Выполнил запрос и получил ту же ошибку. Т.е ЧЗ отказался принять даже официальные документы от Крипто ПРО. Отсюда можно сделать вывод, что данный API - не рабочий. Закончив попытки решил просто взять csv файл, через ЛК вывести. Все прошло с первого раза.
22.06.2023 00:46
0

Добрый день!
Инструкция.pdf
Подписывать открепленной подписью необходимо исходный CSV документ, до конвертации в Base64. Далее подписанный документ необходимо сконвертировать в Base64 и указать в параметре «signature».
22.06.2023 08:43
1
П
VINJET, Спасибо. Спасибо. И еще раз спасибо. Вы абсолютно правы. Я впервые вижу эту инструкцию, никто не писал о ней. Действительно, алгоритм описанный в ней работает и подписывать нужно было исходный документ, до конвертации.
22.06.2023 11:39
0

Павел, рады что удалось Вам помочь, желаем успехов!
22.06.2023 13:44
0

Для примера в предыдущем ответе, прикрепили инструкцию, которая нам на начальном этапе с помощью простых утилит помогла отладить алгоритм подписания и отправки. Сейчас она уже немного устарела, но базовые вещи остались правильными.
22.06.2023 08:47
1

В отправленной инструкции, основные из разделов для Вашей ситуации - 2.5.1 и 2.5.5.
22.06.2023 09:02
1