Подписание с использованием облачного сертификата DSS - Synerdocs/synerdocs-sdk GitHub Wiki
Сценарий создания облачной ЭП с помощью сертификата DSS выглядит следующим образом:
-
Если документ уже был загружен в сервис, например, отправлен вам и фигурирует в списке входящих, то переходим к шагу 3 сценария.
-
Если документ еще не был был загружен в сервис, то необходимо создать документ (загрузить контент), который необходимо подписать. Для загрузки контента используется метод CreateDocument сервиса DocumentServiceV1.svc. В ответ вернется ИД загруженного контента CreateDocumentResponse.CreateDocumentResult.Id.
-
Для работы облачной ЭП используется сервис SignatureServiceV1.svc.
-
Создать запрос на подписание документа. Для этого необходимо вызвать метод CreateCloudSignature, куда необходимо передать, кроме токена пользователя, ИД документа (входящего или созданного с помощью CreateCloudSignature.request.DocumentId) и отпечаток сертификата (CreateCloudSignature.request.Thumbprint). В случае успешного создания запроса, вернется ИД этого запроса (CreateCloudSignatureResponse.CreateCloudSignatureResult.Id), по которому можно будет отслеживать статус готовности ЭП.
-
Проверить готовность ЭП. Между созданием запроса на подписание документа и самим подписанием может пройти некоторое время, так как пользователю необходимо подтвердить подписание в приложении myDSS. Чтобы проверить готовность ЭП необходимо вызвать метод GetSignatureProcessingState. Для отслеживания статуса обработки можно анализировать значение GetSignatureProcessingStateResponse.GetSignatureProcessingStateResult.Status. После того, как этот статус примет значение Processed, можно проверить статус создания ЭП как GetSignatureProcessingStateResponse.GetSignatureProcessingStateResult.ResultStatus. Если он принял значение Success, то подпись успешно создана.
-
Получить контент ЭП. Для этого необходимо вызвать метод GetSignatureContent. В ответе вернется контент ЭП (GetSignatureContentResponse.GetSignatureContentResult.Content) в кодировке Base64.
-