Closed darujo closed 4 years ago
Здравствуйте, можете указать какой документ подписываете? можно или ссылкой из веб-интерфейса или iOrganizationId + DocumentId
IDocument property type VT_BSTR UniversalCorrectionDocument OrganizationId VT_BSTR 8283c62dadea494ba8830b9a0cea5634@diadoc.ru DocumentId VT_BSTR b57a26b2-ca9d-4aaf-8ec6-8371f4654402129b385f-4ed7-4c08-90d8-7f471194ec12 Direction VT_BSTR Inbound
В логах вижу ошибку
Line: 4, Position: 71, /UniversalCorrectionDocumentBuyerTitle[1]/Signers[1]/SignerReference[1]/@CertificateBytes: The 'CertificateBytes' attribute is invalid - The value '123' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:base64Binary' - Invalid length for a Base-64 char array or string.
/UniversalCorrectionDocumentBuyerTitle/Signers/SignerReference: @Inn is required
/UniversalCorrectionDocumentBuyerTitle/Signers/SignerReference: @CertficateBytes: FirstName is required
/UniversalCorrectionDocumentBuyerTitle/Signers/SignerReference: @CertficateBytes: LastName is required
/UniversalCorrectionDocumentBuyerTitle/Signers/SignerReference: @CertficateBytes: Inn has wrong checksum
/UniversalCorrectionDocumentBuyerTitle/Signers/SignerReference: SignerDetails not found for boxId=8283c62d-adea-494b-a883-0b9a0cea5634, thumbprint=D88BD06E785643D87E9F371E65C2BC7176CCB75A, documentTitleType=3
Если заполняете структуру SignerReference, то должны быть предварительно заполнены параметры подписанта. Заполнить их можно, используя объект SetExtendedSignerDetailsTask. Создаётся методом Organization.CreateSetExtendedSignerDetailsTask(Thumbprint).
В поле CertficateBytes должна base64 строка открытого ключа сертификата
Или же нужно явно задавать параметры подписанта в структуре SignerDetails контента
И, если не секрет, то на каком языке пишете интеграцию - не могу опознать синтаксис ? Спасибо
1)А подскажите эти данные можно заполнить и в web интерфейсе? 2) почему CertficateBytes для одного сертификата требуется, а другим подписывается без проблем. И в CertficateBytes надо подставить SerialNumber или что-то еще? Пишу на OpenEdge 4gl Progress
в web интерфейсе данные заполнить можно. Есть инструкция. В разделе "Сотрудники" нажать на ФИО сотрудника и на вкладке "Данные по сертификатам" выбрать сертификат подписания. Либо при подписании соответствующего типа документа данные будут сохранены
Возможно, указывается thumbprint (отпечаток) сертификата и для него уже были заполнены параметры подписанта. Параметры уникальны для сочетания BoxId + Thumbprint + тип документа
Спасибо помогло.
Подписываю УКД вот таким образом: vReplyTask = Document:CreateReplySendTask2("AcceptDocument"). vContentItems = vReplyTask:ContentItems. do vi = 1 to vContentItems:count: vContentItem = vContentItems:GetItem(vi - 1 ):Content. vBuyerTitle = vContentItem:UniversalCorrectionDocumentBuyerTitle. vBuyerTitle:DocumentCreator = "организация инн123456677 Кпп 123444556657". vBuyerTitle:OperationContent = "C изменением стоимости согласен". vBuyerTitle:AcceptanceDate = today. vSigner = vBuyerTitle:Signers:additems(). vSigner:SignerReference:CertificateThumbprint = mDiadocConnection:Certificate:Thumbprint. vSigner:SignerReference:boxid = iOrganizationId. end. vReplyTask:Send(). в одном ящике документ подписывается без проблем, а в другом выдает ошибку Подскажите что я делаю не так?