diadocapi-docs icon indicating copy to clipboard operation
diadocapi-docs copied to clipboard

/SendDraft - ошибка подписи, подписант

Open gnp900 opened this issue 5 years ago • 5 comments

Добрый день, помогите пожалуйста уже всю голову сломал. Есть документы в черновиках, знаю DraftID и EntityId, который появится в виде УПД после черновика.

Выполняю отправку методом /SendDraft, указываю подпись и отправляю. Документ отправляется и вроде даже подписывается НО в Исходящих на УПД висит ошибка, "Ошибка подписи" с сообщением "ФИО подписанта в документе не совпадает с ФИО владельца электронной подписи" по скаченной XML видно что нет данных о подписанте, т.е. они не внеслись туда. Собственно вопрос что я делаю не так и как делать правильно чтобы черновик подписался и отправился?:)

boxId = "de1afa2e-c410-495c-9eb8-9a9febaaf182"; draftId = "1173cec0-eb36-41c3-9c48-db8a8488ae93"; EntityId = "9e188f36-3524-4a85-a9f3-58d046e90c0e"; ///Подключаем COM, компонента работает с криптоключами с компа Попытка comStore = Новый COMОбъект("CAdESCOM.Store"); comCPSigner = Новый COMОбъект("CAdESCOM.CPSigner"); // Аналог "CAPICOM.Signer". comSignedData = Новый COMОбъект("CAdESCOM.CadesSignedData"); Исключение Сообщить("Не установлен КриптоПро!"); Возврат ; КонецПопытки;

/// Тут получаем чистую подпись ранее подключенной КОМ comCPSigner.Certificate = comСертификат; comSignedData.Content = СтрДляПодписи; ПодписанныеДанные = comSignedData.SignCades( comCPSigner, // Signer 1, // CadesType, CADESCOM_CADES_BES. Истина, // bDetached - "флаг открепленной подписи (исходное сообщение не включается в итоговый CMS-контейнер)". Тут я получил чистую подпись ); // EncodingType - по умолчанию CAPICOM_ENCODE_BASE64

ЗапросWeb = Новый HTTPЗапрос("/SendDraft"); ЗапросWeb.Заголовки.Вставить("Authorization","DiadocAuth ddauth_api_client_id="+ApiKey1+",ddauth_token="+Token); ЗапросWeb.Заголовки.Вставить("Content-Type", "application/json");

///Собираем структуру для запроса ЗаписьJOIN = Новый ЗаписьJSON; ЗаписьJOIN.УстановитьСтроку(); DraftToSend = новый Структура; DraftToSend.Вставить("BoxId",BoxId); DraftToSend.Вставить("DraftId",draftId); Подписи = новый Массив; Подпись = новый Структура; Подпись.Вставить("ParentEntityId",EntityId); Подпись.Вставить("Signature",ПодписанныеДанные); Подписи.Добавить(Подпись); DraftToSend.Вставить("DocumentSignatures",Подписи); ЗаписатьJSON(ЗаписьJOIN,DraftToSend); СтрокаДляЗапроса = ЗаписьJOIN.Закрыть();

ЗапросWeb.УстановитьТелоИзСтроки(СтрокаДляЗапроса,КодировкаТекста.UTF8);

ОтветWeb = Соединение.ОтправитьДляОбработки(ЗапросWeb); Если (ОтветWeb.КодСостояния <> 200) Тогда Сообщить("Нам вернули код: " + ОтветWeb.КодСостояния); Сообщить(ОтветWeb.ПолучитьТелоКакСтроку()); иначе к = ОтветWeb.ПолучитьТелоКакСтроку("windows-1250"); ///в ответ возращается Xml самой УПД, подписантов тютю КонецЕсли;

gnp900 avatar Dec 03 '20 10:12 gnp900