Веб-сервисы для эффективного управления бизнесом!

Инструменты пользователя

Инструменты сайта


gui

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
gui [2019/07/10 06:39]
ilya
gui [2019/07/10 08:24] (текущий)
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**.\\ ​
 +
 +====== Чтение Java key-store с ключами приложения ======
 +
 +    <​protocol>://<​domain>/<​app-name>/​handler/​api/​keystore/<​file-name>​.keystore?​app_id=<​app_id>&​ password=<​password>>&​serial_number=<​serial_number>&​sig=<​signature>​ – Возвращает файл Java key-store с ключами зарегистрированного приложения.\\ ​
 +\\ 
 +Параметры запроса:​\\ ​
 +
 +  * <​app_id>​ - идентификатор приложения в системе. Выдается при подключении.
 +  * <​password>​ - пароль,​ которым будет зашифровано хранилище.
 +  * <​serial_number>​ - идентификатор сертификата в системе. Выдается при подключении.
 +  * <​signature>​ - подпись запроса. ​ * 
 +Данные транзакции для запроса:​ транзакция отсутствует.\\ ​
 +Данные транзакции для ответа:​ транзакция отсутствует.\\ ​
 +Получение информации только с помощью метода **GET**\\ ​
 +
 +====== Авторизация пользователя в системе ======
 +
 +    <​protocol>://<​domain>/<​app-name>/​handler/​api/​authenticate?​app_id=<​app_id>&​username=<​username>&​password=<​password>&​format=<​format>&​sig=<​signature>​ – Авторизует пользователя в системе.
 +Параметры запроса:​
 +  * <​app_id>​ - идентификатор приложения в системе. Выдается при подключении.
 +  * <​username>​ - имя пользователя в системе.
 +  * <​password>​ - пароль пользователя.
 +  * <​format>​ - формат приема/​выдачи ответа API (json/xml).
 +  * <​signature>​ - подпись запроса.
 +Данные транзакции для запроса:​ транзакция отсутствует.
 +Данные транзакции для ответа: ​
 +  * <uid> – идентификатор пользователя в системе;​
 +  * <sid> – номер текущей сессии;​
 +XML формат ответа:​
 + <?xml version="​1.0"​ encoding="​UTF-8"?>​
 + <​response>​
 + <​datetime>​2015-06-02T10:​46:​28.670+0300</​datetime>​
 + <​xmlsign>​BDPiPGrdY2DfjCu6z3VTdwA12ag%2F%2FGjg1eyDb5aR%2BslrNozFvVZtBfHUn2RIUgO%2FE42RNmWPD
 + G7qiK2MpKQUa%2Fn%2BJW3TUhDwo%2FOBn%2BaK5c85HM1rZiNE4xQW050Mtukvxj%2Ff8vX6Rh%2F6pJiU1XbWlls
 + U9R6YSW8%2B3SMJl%2Fi4Xa0%3D</​xmlsign>​
 + <​transaction>​
 + <​uid>​1</​uid>​
 + <​sid>​4dc9257edab6104da518bfc86c32e37d5d15</​sid>​
 + </​transaction>​
 + </​response>​
 +JSON формат ответа:​
 + {
 + "​response":​{
 + "​datetime":"​2015-06-02T10:​46:​28.670+0300",​
 + "​xmlsign":"​BDPiPGrdY2DfjCu6z3VTdwA12ag%2F%2FGjg1eyDb5aR%2BslrNozFvVZtBfHUn2RIUgO%2F
 + E42RNmWPDG7qiK2MpKQUa%2Fn%2BJW3TUhDwo%2FOBn%2BaK5c85HM1rZiNE4xQW050Mtukvxj%2Ff8vX6R
 + h%2F6pJiU1XbWllsU9R6YSW8%2B3SMJl%2Fi4Xa0%3D",​
 + "​transaction":​{
 + "​uid":​1,​
 + "​sid":"​4dc9257edab6104da518bfc86c32e37d5d15"​
 + }
 + }
 + }
 +Получение информации только с помощью метода **POST**
 +====== Загрузка файлов ======
 +**method=resource.download** – Находит и выгружает файл в браузер как бинарный.
 +Дополнительные параметры запроса:​
 +  * type – тип файлов (обычно совпадает с относительным путем к папке в которой находится файл).
 +  * path – название файла или относительный путь к файлу.
 +Данные транзакции для запроса:​ отсутствуют
 +Получение информации только с помощью метода **GET**
 +====== Выгрузка файлов ======
 +**method=resource.upload** – Служит для потоковой загрузки файлов из браузера.
 +Дополнительные параметры запроса:​
 +  * type – тип файлов (обычно совпадает с относительным путем к папке в которой находится файл).
 +  * path – название файла или относительный путь к файлу
 +Данные транзакции для запроса:​ файлы с формы ввода или FormData
 +Отправка информации только с помощью метода **POST**.
gui.1562740765.txt.gz · Последние изменения: 2019/07/10 06:39 — ilya