Closed Leznevskiy closed 1 year ago
Лично мы у себя реализовали для исходящих. В начале используем PrepareDocumentsToSign, формируем такой фот json
{
"BoxId": "$1",
"DraftDocuments": [
{
"DocumentId": {
"MessageId": "$2",
"EntityId": "$3"
},
"ExtendedSigner": [
{
"BoxId": "$1",
"SignerCertificateThumbprint": "$4"
}
]
}
]
}
В ответ получаем данные, которые нужно подписать, лежать в Content и запоминаем PatchedContentId. Подписываем сертификатом данные которые лежали в Content и запоминаем их. Далее используем метод PostMessagePatch. Формируем такой вот запрос
{
"BoxId": "$1",
"MessageId": "$2",
"Signatures": [
{
"ParentEntityId": "$3",
"Signature": "Base64String подписи, файла который получился в результате подписания данных полученных из PrepareDocumentsToSign",
"PatchedContentId": "PatchedContentId которые получили из PrepareDocumentsToSign",
}
]
}
Отправляем и все документ подписан. Но у нас реализовано, что в начале просто отправляем документ без подписи. Он получает статус "Требуется подписать и отправить"
мне для входящего нужно, там наверное схема другая
Извиняюсь, не внимательно прочитал. Да для входящих не много по другому. Нужно не забыть в начале подписать ИоП (если ранее этого не сделали). Далее сформировать титул покупателя GenerateTitleXml Для УПД, мы формируем такой вот запрос
<UniversalTransferDocumentBuyerTitle
AcceptanceDate="$4" DocumentCreator="$1"
OperationContent="$3" xmlns=""
xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ContentOperCode TotalCode="$2"/>
<Signers>
<SignerReference BoxId="$5" CertificateThumbprint="$6"/>
</Signers>
</UniversalTransferDocumentBuyerTitle>
Методом POST, отправляем запрос на GenerateTitleXml с заполнением query параметров
GenerateTitleXml?boxId={uri.var.boxId}&documentTypeNamedId={uri.var.documentTypeNamedId}&documentFunction={uri.var.function}&documentVersion={uri.var.documentVersion}&titleIndex=1&letterId={uri.var.messageId}&documentId={uri.var.entityId}
Получаем титул покупателя, его подписываем
Далее формируем запрос
{
"BoxId": "$1",
"MessageId": "$2",
"RecipientTitles": [
{
"ParentEntityId": "$3",
"SignedContent": {
"Content": "$4",
"Signature": "$5"
}
}
]
}
И отправляем его на V3/PostMessagePatch.
Все документ подписан.
нужно реализовать подпись документов через отпечаток сертификата электронной подписи. такой вопрос, какие методы использовать какая последовательность, читаю гит, половина методов устарела, половина исчезла, никакой точной информации как по api подписать документ - нет!