Подписание с использованием облачного сертификата DSS - Synerdocs/synerdocs-sdk GitHub Wiki

Сценарий создания облачной ЭП с помощью сертификата DSS выглядит следующим образом:

  1. Если документ уже был загружен в сервис, например, отправлен вам и фигурирует в списке входящих, то переходим к шагу 3 сценария.

  2. Если документ еще не был был загружен в сервис, то необходимо создать документ (загрузить контент), который необходимо подписать. Для загрузки контента используется метод CreateDocument сервиса DocumentServiceV1.svc. В ответ вернется ИД загруженного контента CreateDocumentResponse.CreateDocumentResult.Id.

  3. Для работы облачной ЭП используется сервис SignatureServiceV1.svc.

    1. Создать запрос на подписание документа. Для этого необходимо вызвать метод CreateCloudSignature, куда необходимо передать, кроме токена пользователя, ИД документа (входящего или созданного с помощью CreateCloudSignature.request.DocumentId) и отпечаток сертификата (CreateCloudSignature.request.Thumbprint). В случае успешного создания запроса, вернется ИД этого запроса (CreateCloudSignatureResponse.CreateCloudSignatureResult.Id), по которому можно будет отслеживать статус готовности ЭП.

    2. Проверить готовность ЭП. Между созданием запроса на подписание документа и самим подписанием может пройти некоторое время, так как пользователю необходимо подтвердить подписание в приложении myDSS. Чтобы проверить готовность ЭП необходимо вызвать метод GetSignatureProcessingState. Для отслеживания статуса обработки можно анализировать значение GetSignatureProcessingStateResponse.GetSignatureProcessingStateResult.Status. После того, как этот статус примет значение Processed, можно проверить статус создания ЭП как GetSignatureProcessingStateResponse.GetSignatureProcessingStateResult.ResultStatus. Если он принял значение Success, то подпись успешно создана.

    3. Получить контент ЭП. Для этого необходимо вызвать метод GetSignatureContent. В ответе вернется контент ЭП (GetSignatureContentResponse.GetSignatureContentResult.Content) в кодировке Base64.

⚠️ **GitHub.com Fallback** ⚠️