Виджет подписания документа госключом — всплывающая форма для ввода сведений о подписанном документе/файле отображении результата подписанного документа и его подписи. Форма оптимизирована для использования в любых браузерах и мобильных устройствах. Внутри виджета открывается iframe, который гарантирует безопасность передачи данных и не требует от ТСП сертификации для использования.
Демонстрация работы виджета представлена в по ссылке.
Для тестирования можно использовать как тестовое, так и промышленное приложение Госключ.
(добавить скриншот формы для заполнения)
Для установки виджета необходимо прописать на сайте скрипт в раздел head:
<script src="https://widget.cloudsigns.ru/cloudsigns.min.js"></script>
Для появления возможности подписать документы необходимо зарегистрировать функцию-обработчик, которая будет вызываться по активному действию на странице, например — по клику на кнопке с id=signButton:
const element = getElementById('signButton');
element.addEventListener("click", () => {
const widget = new CloudsignsWidget("signForm");
widget.startSign({
// выдаются при подключении
clientKey: "some-client-key",
templateKey: "some-template-key",
// СНИЛС подписанта (кому будет направлено в Госключ)
snils: "some-snils",
// далее идут callback, вызываемые виджетом на различные события.
// запустилось окно с подписанием документов
onStart: () => {
console.info("Request success!");
},
// при запуске окна с подписанием документов произошла ошибка (скорее всего - сетевая), работа виджета невозможна
onError: (error) => {
console.error("Request error", error);
},
// окно виджета закрыто до завершения процесса подписания
// (то есть нажат крестик или "закрыть" до получения подтверждения подписания или ошибки от ГК)
onCancel: () => {
console.error("Sign cancelled");
},
// документ успешно подписан, в data хранятся ссылки на подписанный файл и откреплённую подпись
onSignSuccess: (data) => {
console.info("Sign success!", data);
},
// ошибка при подписании документа (ошибка передачи в ГК, отказ в подписании в приложении ГК, или что-то иное)
onSignError: (error) => {
console.error("Sign error", error);
}
});
});
Демонстрация работы виджета представлена по ссылке.
Параметры виджета:
Параметр | Формат | Применение | Описание |
---|---|---|---|
clientKey | String | Обязательный | Идентификатор клиента (клиентской системы), выданный при подключении к сервису (строка вида ck_xxxxxx) |
snils | String | Обязательный | СНИЛС получателя документа |
TODO: expireInMinutes | Integer | Необязательный | Время жизни документа (в течении которого его можно подписать), в минутах; если значение не указано , указано не положительное число, или указано больше 1440 (=24ч) — принимается равным 1440. Не рекомендуется указывать меньше 3 минут. |
При закрытии окна виджета он может уведомить страницу о статусе подписываемого документа (на момент закрытия) посредством вызова указанной функции (или просто переходом на другую страницу):
Параметр | Формат | Применение | Описание |
---|---|---|---|
onStart | Function или String | Необязательный | Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного открытия окна с документов. |
onError | Function или String | Необязательный | Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после если при открытии окна с документом произошла ошибка. |
onCancel | Function или String | Необязательный | Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после отказа пользователя подписать документ. В случае указания адреса — пользователь будет направлен на указанную страницу. |
onSignSuccess | Function или String | Необязательный | Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана после успешного завершения подписания и закрытия пользователем окна виджета. В случае указания адреса — пользователь будет направлен на указанную страницу. |
onSignError | Function или String | Необязательный | Указывается либо функция, либо адрес страницы сайта. В случае указания функции — она будет вызвана при технической ошибке подписания Госключом (например, невозможность передать в Госключ, недоступность внутренней инфраструктуры Минцифры и т.п.). В случае указания адреса — пользователь будет направлен на указанную страницу. |
Виджет автоматически определяет устройство пользователя и запускает наиболее подходящий вариант виджета: обычный либо оптимизированный для мобильных устройств. Мобильная версия виджета занимает весь экран.
Возможность подписания документов в виджете появляется при соблюдении следующих условий:
Сервис Cloudsigns спроектирован в расчёте на уровень безопасности пользователя и его данных, соответствующий стандартам DSI DSS — стандарта информационной безопасности, принятого в индустрии подписания документов (аналогичен стандарту PCI DSS для обработки платёжных данных).
Основное требование стандарта — максимально ограничить доступ к данным. Оптимальное решение — вообще не иметь к ним доступа, а вместо этого использовать сертифицированных провайдеров для проведения подписания. На практике это означает, что нельзя ни запрашивать, ни передавать подписи. Если при звонке клиент говорит, что не проходит платеж, и начинает диктовать номер, нужно его прервать и объяснить, почему вы не можете получать данные сигнатуры. Если присылает по почте или скайпу — удалять сообщение и сообщать, что передавать данные сигнатуры небезопасно.
CloudSigns — сертифицированный сервис-провайдер с максимальным уровнем соответствия требованиям Госключа.
Все инструменты CloudSigns спроектированы таким образом, что при их использовании вы автоматически соответствуете требованиям по безопасности. Дополнительных мер предпринимать не нужно.