Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
gui [2019/07/10 06:39] ilya |
gui [2019/07/10 07:27] ilya |
||
---|---|---|---|
Строка 145: | Строка 145: | ||
|<xmlsign>|string|подпись пакета (подробнее см. Формирование подписи пакета); обязательный параметр| | |<xmlsign>|string|подпись пакета (подробнее см. Формирование подписи пакета); обязательный параметр| | ||
|<transaction>|---|внутри данного тэга находятся передаваемые с сервера данные; обязательный параметр| | |<transaction>|---|внутри данного тэга находятся передаваемые с сервера данные; обязательный параметр| | ||
+ | |||
+ | **Ошибка**\\ | ||
+ | В случае возникновения ошибки система должна вернуть пакет ошибки следующего вида | ||
+ | |||
+ | XML формат пакета | ||
+ | <?xml version="1.0" encoding="UTF-8"?> | ||
+ | <response> | ||
+ | <xmlsign>MCwCFBDENIKYn964yX5Dkg+F7m1pMCJdAhQTRB3UaMZ8aYk1ID6tt5Kzd1J1Ag==</xmlsign> | ||
+ | <datetime>2014-01-20T11:00:43.929+0200</datetime> | ||
+ | <error> | ||
+ | <code>5</code> | ||
+ | <text>Wrong request data packet or a signature.</text> | ||
+ | </error> | ||
+ | </response> | ||
+ | JSON формат пакета | ||
+ | { | ||
+ | "response":{ | ||
+ | "datetime":"2014-01-20T11:00:43.845+0200", | ||
+ | "xmlsign":"MCwCFHN0CMsiMZg3xUnWMLMP5pZcl7DQAhRka2zvFsomqj8bRzJNRAOnF5+gFA==", | ||
+ | "error":{ | ||
+ | "code":5, | ||
+ | "text":"Wrong request data packet or a signature." | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | |||
+ | ^Тэг/Параметр^Тип^Описание^ | ||
+ | |<response>|---|данный тэг говорит о том, что данные этого пакета относятся к ответам| | ||
+ | |<datetime>|date-time|дата и время создания ответа в формате yyyy-MM-dd'T'HH:mm:ss.SSSZ; обязательный параметр| | ||
+ | |<xmlsign>|string|подпись пакета (подробнее см. Формирование подписи пакета); обязательный параметр| | ||
+ | |<error>|---|внутри данного тэга находятся передаваемые с сервера данные (информация об ошибке); обязательный параметр| | ||
+ | |<code>|long|код ошибки в системе; обязательный параметр| | ||
+ | |<text>|string|текст ошибки| | ||
+ | ====== Формирование подписи пакета ====== | ||
+ | |||
+ | Каждый пакет должен быть подписан цифровой подписью с помощью алгоритма **RSA** с использованием алгоритма хеш-функций **SHA256**. Для этого формируется полный пакет с данными, которые будут передаваться. Внутрь тэга ''<xmlsign>'' помещаем пробел. Переводим строку в массив байтов используя кодировку **UTF-8** и рассчитываем подпись с применением скрытого ключа. Результат подписи кодируется в | ||
+ | base64, переводится в **application/x-www-form-urlencoded** формат и заменяет содержимое тэга | ||
+ | ''<xmlsign>''. | ||
+ | |||
+ | Проверка подписи происходит в таком же порядке: берем пакет данных, Внутрь тэга **<xmlsign>** помещаем пробел, переводим строку в массив байтов используя кодировку **UTF-8** и проверяем подпись с применением открытого ключа.\\ | ||
+ | Выдача сертификатов для данной процедуры происходит в момент подключения внешнего приложения к системе. | ||
+ | ====== Общие запросы для всех систем CleverFormsTM API ====== | ||
+ | **Чтение сертификата приложения** | ||
+ | **<protocol>://<domain>/<app-name>/handler/api/certificate/<filename>.cer?app_id=<app_id>&serial_number=<serial_number>&sig=<signature>** – Возвращает файл сертификата | ||
+ | для зарегистрированного приложения. Получение информации только с помощью метода **GET**.\\ | ||
+ | \\ | ||
+ | |||
+ | Параметры запроса:\\ | ||
+ | * <app_id> - идентификатор приложения в системе. Выдается при подключении.\\ | ||
+ | * <serial_number> - идентификатор сертификата в системе. Выдается при подключении.\\ | ||
+ | * <signature> - подпись запроса. * Элемент ненумерованного списка\\ | ||
+ | Данные транзакции для запроса: транзакция отсутствует.\\ | ||
+ | Данные транзакции для ответа: транзакция отсутствует.\\ | ||
+ | Получение информации только с помощью метода GET.\\ |