Description of ROOTPANEL.NET API for hosting and server management system HOSTETSKI:)
Содержание
- 1.Введение
- 2.Описание HTTP шлюза
- 2.1. Реальный доступ
- 2.2. Тестовый доступ
- 3.Отправка HTTP запросов
- 3.1. Команды
- 3.2. Формат входных данных
- 3.3. Формат результата выполнения команды
- 3.4. Общие поля запросов
- 3.5. Сообщения об ошибках
- 3.6. Способы аутентификации
- 3.6.1. Аутентификация по паролю
- 3.6.2. Аутентификация по ключу API
- 4.Описание команд
- 4.1. Создание заказа
- 4.2. Продление заказа
- 4.3. Остановка заказа
- 4.4. Запуск остановленного заказа
- 4.5. Получение списка тарифных планов
- 4.6. Перезагрузка заказа
- 4.7. Переустановка заказа
- 4.8. Получение спика заказов
- 4.9. Получение суммы внутреннего баланса пользователя
- 4.10. Изменение тарифного плана
1. Введение
Это справочное руководство описывает HTTP-шлюз к системе распределённой регистрации HOSTETSKI:) (далее ROOTPANEL.NET API).
HTTP-шлюз — это метод взаимодействия с системой распределённой регистрации ROOTPANEL.NET API, позволяющий осуществлять операции в реальном времени за один шаг.
Для осуществления одношаговых (одноэтапных) операций, вся информация должна быть представлена в одном единственном HTTP-запросе. В интерфейсе ROOTPANEL.NET API нет понятия "состояния" и все запросы независимы друг от друга. HTTP-интерфейс поддерживает такие операции как создание заказа, продление заказа, приостановка заказа, запуск заказа и т.п. Доступные операции описаны ниже в этом документе.
2. Описание HTTP шлюза
Компания HOSTETSKI:) предоставляет не только реальный доступ к HTTP-шлюзу, но также и тестовый доступ для отладки взаимодействия с системой ROOTPANEL.NET API.
2.1. Реальный доступ
Запросы к HTTP-шлюзу должны направляться на URL
https://my.hostetski.com/apih.php
Среднее время ответа при нормальных нагрузках сервера должно быть не более 5 или 10 секунд.
2.2. Тестовый доступ
HOSTETSKI:) предоставляет тестовый доступ к своему шлюзу для тестирования системы регистрации. Отличия тестового доступа от реального таковы:
- Плата за операции не взимается
- Операции с заказами реально не производятся, аккаунты не создаются
- Тестовая система не содержит информации о заказах, которая присутствует в реальном реестре.
Для использования тестовой системы, HTTP запросы должны направляться на тот же URL, что и для реальной системы. При этом используются следующие авторизационные данные:
- Логин: test
- Пароль: test
3. Отправка HTTP-запросов
3.1. Команды
HTTP-шлюз позволяет выполнять различные команды. В таблице ниже приведён список команд, которые могут быть осуществлены с использованием HTTP-шлюза. Для каждой операции требуется указание различных параметров (полей), которые описаны ниже в этом документе.
Команда (значение command) | Описание |
createOrder | Создание заказа |
renewOrder | Продление заказа |
suspendOrder | Остановка заказа |
unSuspendOrder | Запуск остановленного заказа |
getTarifs | Получение списка тарифных планов |
restartOrder | Перезагрузка заказа |
reinstallOrder | Переустановка заказа |
getOrders | Получение списка заказов |
3.2. Формат входных данных
Команды передаются в виде стандартного запроса HTTP/1.0 методом POST или GET. Параметры команды передаются в виде HTTP параметров. При этом действуют следующие правила:
- Значения всех полей являются строками.
- Значения полей передаются в кодировке utf-8.
- Все обязательные поля должны присутствовать в запросе и должны содержать как минимум один символ.
- Названия параметров HTTP-запроса должны в точности соответствовать названиям полей с учётом регистра символов.
- Значения всех полей должны быть urlencoded.
3.3. Формат результата выполнения команды
Ответом интерфейса ROOTPANEL.NET API является сериализованная строка, содержащая в себе массив параметров, полученная с помощью PHP-функции serialize.
Кодировка строки ответа utf-8.
Для преобразования сериализованной строки обратно в массив параметров, необходимо использовать PHP-функцию unserialize.
Так же есть возмоность получать ответ в формате JSON.
3.4. Общие поля запросов
В таблице перечислены все обязательные поля, которые должны присутствовать в любом запросе.
Имя поля | Описание |
command | Определяет команду, которая должна быть выполнена, например createOrder |
login | Логин пользователя в биллинговой системе |
pass | Пароль пользователя в биллинговой системе. Поля pass и apikey являются взаимоисключающими и не могут встречаться в одном запросе. См. раздел 3.6. |
apikey | Ключ для доступа к интерфейсу ROOTPANEL.NET API. Поля pass и apikey являются взаимоисключающими и не могут встречаться в одном запросе. См. раздел 3.6. |
language | Язык подробного описания ошибок (russian, english, ukrainian). Поле не обязательное. По умолчанию: russian |
json | Если для поля задано значение равное единице, то система будет выдавать ответ в JSON-формате. Поле не обязательное. |
currency | Трехбуквенный код валюты. Если для поля задано значение, все цены в ответах будут в заданной валюте, в противном случае цены будут в валюте, которая указана в настройках клиента. Поле не обязательное. |
3.5. Сообщения об ошибках
Существует два типа ошибок - критические и не критические.
В случае критической ошибки считается, что команда не выполнена.
В случае не критической ошибки считается, что команда выполнена, либо будет выполнена позже.
В случае ошибки при выполнении команды, ROOTPANEL.NET API возвращает параметры, перечисленные в таблице ниже.
Имя поля | Описание |
status | Результат выполнения команды. В случае критической ошибки значение всегда равно ERROR. В случае не критической SUCCESS. |
errorCode | Код ошибки |
errorMsg | Подробное описание ошибки |
В таблице ниже приведены возможные критические ошибки при работе с ROOTPANEL.NET API.
Код ошибки | Описание |
1 | Ошибка подключения к БД |
2 | Ошибка сохранения данных в БД |
3 | Не указан логин пользователя |
4 | Пользователь не найден |
5 | Доступ к API отключен |
6 | Не указан пароль или ключ API |
7 | Указан неправильный пароль или ключ API |
8 | Неизвестная команда |
9 | Запрещено использовать пароль и ключ API в одном запросе |
10 | Тарифные планы отсутствуют |
11 | Не указан идентификатор тарифного плана |
12 | Тарифный план не найден |
13 | Не указано доменное имя |
14 | Тарифный план для указанного доменного имени уже заказан |
15 | Не указан срок заказа |
16 | Указан недопустимый срок заказа |
17 | Указана недопустимая дополнительная услуга |
18 | Не указан идентификатор заказа |
19 | Заказ не найден |
20 | Для заказа есть неоплаченные счета |
21 | Заказ уже приостановлен |
22 | Заказ уже запущен |
23 | Заказ просрочен |
24 | Тип тарифного плана указан неверно |
25 | Операция не поддерживается для заказов данного типа |
26 | Заказы отсутствуют |
27 | Тарифный план можно заказать только один раз |
28 | Тарифный план не доступен для данного заказа |
31 | Недостаточно среств на внутреннем балансе |
38 | Продление не возможно ранее чем за {X} дней до окончания оплаченного периода |
54 | Доступ запрещен. IP отсутствует в списке разрешенных |
В таблице ниже приведены возможные не критические ошибки при работе с ROOTPANEL.NET API.
Код ошибки | Описание |
30 | Заявка принята, но по техническим причинам будет обработана в ручном режиме. |
3.6. Способы аутентификации
В системе регистрации ROOTPANEL.NET API поддерживается два способа аутентификации: по логину и паролю, а также аутентификация по ключу API.
3.6.1. Аутентификация по паролю
Аутентификация осуществляется с использованием полей запроса login и pass. Пользователь с указанным логином и паролем должен существовать в биллинговой системе для успешного прохождения аутентификации. Так же для него должен быть включен доступ к API.
3.6.2. Аутентификация по ключу API
Аутентификация осуществляется с использованием полей запроса login и apikey. Пользователь с указанным логином и ключом API должен существовать в биллинговой системе для успешного прохождения аутентификации. Так же для него должен быть включен доступ к API.
4. Описание команд
4.1. Создание заказа
Эта команда служит для создания нового заказа. В качестве значения поля command для этой команды должно быть указано createOrder
В таблице ниже перечислены поля, используемые при создании заказа.
Имя поля | Описание |
vid | Тип тарифного плана. Допустимые значения - hosting, vds, vpn. |
tarifid | ID тарифного плана. Список доступных тарифных планов можно получить, выполнив команду, описанную в разделе 4.5. |
period | Период на который производится создание заказа. Допустимые значения для данного поля по каждому тарифному плану можно получить, выполнив команду, описанную в разделе 4.5.. Значение необходимо указывать в месяцах. Пример: 1. |
domain | Полное доменное имя для которого создается заказ, например example.com. Допустимы алфавитно-цифровые символы и символ дефиса. Русские имена доменов указываются в кодировке utf-8. Поле не является обязательным, если значение параметра allowWithoutDomain для тарифного плана равняется 1. |
addons | ID дополнительной услуги, которую необходимо прикрепить к заказу. Несколько ID указываются через запятую. Список доступных дополнительных услуг для тарифного плана можно получить, выполнив команду, описанную в разделе 4.5. Поле не обязательное. |
userid | ID клиента для которого необходимо создать заказ. Поле не используется при работе под обычным клиентом и является обязательным при работе под админом. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. В дальнейшем используется для управления заказом. |
vid | Тип тарифного плана, который был использован для создания заказа. |
tarifid | ID тарифного плана, который был использован для создания заказа. |
domain | Доменное имя для которого был создан заказ. |
period | Период на который был создан заказ. |
addons | ID дополнительных услуг, которые были прикреплены к заказу. |
balance | Текущий баланс пользователя. |
cost | Стоимость создания заказа. |
currency | Код валюты в которой возвращены стоимость и баланс. Идентична валюте пользователя в биллинговой системе. |
serverlogin | Дополнительные данные: логин заказа на сервере. |
serverpassword | Дополнительные данные: пароль заказа на сервере. |
remark | Дополнительные данные: примечание - может содержать различную дополнительную информацию по заказу. |
4.2. Продление заказа
Эта команда служит для продления заказа. В качестве значения поля command для этой команды должно быть указано renewOrder.
В таблице ниже перечислены поля, используемые при продлении заказа.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
period | Период на который производится продление заказа. Допустимые значения для данного поля по каждому тарифному плану можно получить, выполнив команду, описанную в разделе 4.5.. Значение необходимо указывать в месяцах. Пример: 1. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
period | Период на который был продлен заказ. |
balance | Текущий баланс пользователя. |
cost | Стоимость продления заказа. |
currency | Код валюты в которой возвращены стоимость и баланс. Идентична валюте пользователя в биллинговой системе. |
4.3. Остановка заказа
Эта команда служит для остановки заказа. В качестве значения поля command для этой команды должно быть указано suspendOrder.
В таблице ниже перечислены поля, используемые при остановке заказа.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
4.4. Запуск остановленного заказа
Эта команда служит для запуска остановленного заказа. В качестве значения поля command для этой команды должно быть указано unSuspendOrder.
В таблице ниже перечислены поля, используемые при запуске остановленного заказа.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
4.5. Получение списка тарифных планов
Эта команда служит для получения списка доступных тарифных планов. В качестве значения поля command для этой команды должно быть указано getTarifs.
В таблице ниже перечислены поля, используемые при получении списка тарифных планов.
Имя поля | Описание |
vid | Тип тарифного плана. Допустимые значения - hosting, vds, vpn. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
tarifs | В данном поле возвращается массив полей. Некоторые поля массива в свою очередь так же являются массивами и содержит в себе другие поля: id - ID тарифного плана vid - тип тарифного плана name - название тарифного плана servername - название тарифного плана на сервере (доступно только админам) costMonthly - ежемесячная стоимость тарифного плана costSetup - разовая стоимость тарифного плана currency - код валюты в которой указана стоимость allowWithoutDomain - если 1, то разрешено заказывать тарифный план без указания доменного имени months - массив полей доступных сроков заказа: months - срок заказа в месяцах discount - скидка для данного срока заказа allowForNewOrder - если 1, срок доступен для новых заказов allowForRenew - если 1, срок доступен для продления заказов costRenew - доп. стоимость (разовый платеж) при продлении freeZonesIfNewOrder - массив доменных зон, которые будут бесплатными (на 1 год) при новом заказе тарифного плана на данный срок вместе с регистрацией домена freeZonesIfRenew - массив доменных зон, которые будут бесплатными (на 1 год) при продлении тарифного плана на данный срок вместе с продлением домена addons - массив полей доступных дополнительных услуг: id - идентификатор услуги textid - текстовый идентификатор услуги name - название услуги costMonthly - ежемесячная стоимость услуги costSetup - разовая стоимость услуги activeByDefault - если 1, то услуга активна по умолчанию при оформлении заказа в web-версии биллинга |
4.6. Перезагрузка заказа
Эта команда служит для перезагрузки заказа (сервера). Команда поддерживается только для некоторых типов серверов. В качестве значения поля command для этой команды должно быть указано restartOrder.
В таблице ниже перечислены поля, используемые при перезагрузке заказа.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
4.7. Переустановка заказа
Эта команда служит для переустановки заказа (сервера). Команда поддерживается только для некоторых типов серверов. В качестве значения поля command для этой команды должно быть указано reinstallOrder.
В таблице ниже перечислены поля, используемые при переустановке заказа.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
4.8. Получение списка заказов
Эта команда служит для получения списка заказов клиента. В качестве значения поля command для этой команды должно быть указано getOrders.
В таблице ниже перечислены поля, используемые при получении списка заказов.
Имя поля | Описание |
orderid | ID заказа для которого нужно получить информацию. Поле не обязательное. |
serverlogin | Логин заказа на сервере для которого нужно получить информацию. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
userid | ID клиента для которого необходимо получить список заказов. Поле не используется при работе под обычным клиентом и является обязательным при работе под админом если не указан orderid или serverlogin. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orders | В данном поле возвращается массив полей. Каждый массив содержит в себе следующие поля: orderid - ID заказа domain - доменное имя domain_reg - 0 - без регистрации домена, 1 - с регистрацией домена, 3 - с трансфером домена vid - тип тарифного плана tarifid - ID тарифного плана tarifname - название тарифного плана tarifservername - название тарифного плана на сервере (доступно только админам) orderdate - дата оформления заказа startdate - дата начала заказа todate - дата до когда оплачен заказ leftdays - кол-во дней до конца заказа status - статус заказа (0 - не обработан, 1 - обработан, 2 - приостановлен, 3 - в обработке) |
4.9. Получение суммы внутреннего баланса пользователя
Эта команда служит для получения суммы внутреннего баланса пользователя биллинговой системы. В качестве значения поля command для этой команды должно быть указано getBalance.
В таблице ниже перечислены поля, используемые при получении суммы внутреннего баланса.
Имя поля | Описание |
orderid | ID заказа для владельца которого необходимо получить сумму внутреннего баланса. Поле не используется при работе под обычным клиентом и является не обязательным при работе под админом. |
serverlogin | Логин заказа на сервере для владельца которого необходимо получить сумму внутреннего баланса. Поле не используется при работе под обычным клиентом и является не обязательным при работе под админом. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
userid | ID клиента для которого необходимо получить сумму внутреннего баланса. Поле не используется при работе под обычным клиентом и является обязательным при работе под админом если не указан orderid или serverlogin. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
balance | Текущий баланс пользователя. |
currency | Код валюты в которой возвращен баланс. Идентична валюте пользователя в биллинговой системе. |
4.10. Изменение тарифного плана
Эта команда служит для изменения тарифного плана у существующего заказа. В качестве значения поля command для этой команды должно быть указано updateOrderTarif.
В таблице ниже перечислены поля, используемые при изменении тарифного плана.
Имя поля | Описание |
orderid | ID заказа, возвращаемый командой, описанной в разделе 4.1. |
serverlogin | Логин заказа на сервере. Поле не обязательное. Может использоваться вместо orderid. Не будет работать если в базе биллинга есть несколько заказов с указанным логином. |
tarifid | ID нового тарифного плана. Список доступных тарифных планов можно получить, выполнив команду, описанную в разделе 4.5. |
В случае успешного выполнения команды, ROOTPANEL.NET API вернет поля, перечисленные в таблице ниже.
Имя поля | Описание |
status | Если команда выполнена успешно, значение всегда будет SUCCESS. |
orderid | ID заказа. |
tarifid | ID нового тарифного плана. |
balance | Текущий баланс пользователя. |
cost | Стоимость изменения тарифного плана. |
currency | Код валюты в которой возвращены стоимость и баланс. Идентична валюте пользователя в биллинговой системе. |