API для регистрации новых клиентов и уведомления об оплате от сторонних сервисов
API организован по технологии клиент-сервер. Сторонний сервис (партнер) отправляет запрос с данными на определенный URL.
В зависимости от получаемых данных на момент запроса UMI.ru выполняет ряд действий (регистрацию нового пользователя, оплату сайта, обновление сайта).
Техническая спецификация
Обмен данными производится по протоколу HTTP. Система возвращает результат в формате JSON.
Метод запроса: POST. Кодировка данных: UTF-8.
Url запроса:
https://gate.umi.ru/partnerapi.php
Любой запрос должен содержать в себе идентификационные данные партнера, идентификационные данные сайта, а также параметры, необходимые для выполнения определенного действия с сайтом.
Идентификационные данные партнера
- partner - логин партнера;
- code - код партнера (выдается в административной зоне партнерской программы).
Идентификационные данные сайта
- host - полное имя сайта (например, test.umi.ru).
Действие |
Параметры |
Описание |
Регистрация нового пользователя | E-mail администратора сайта. | |
password | Пароль администратора сайта (если данный параметр не указан, система сама сгенерирует пароль). | |
sendmail | Если параметр равен 1 или не указан, система отправит администратору сайта стандартное письмо с доступами, если 0 - письмо отправляться не будет. | |
app | Идентификатор тарифа (см. Приложение 1). | |
no_pay (необязательный параметр) |
Если параметр равен 1, то будет создан бесплатный сайт. При этом, необходимо присутствие параметра product в запросе. | |
Оплата сайта | product | Идентификатор товара (см. Приложение 1). |
Блокировка сайта | action=block | |
Разблокировка сайта | action=unblock | |
Провека имени сайта на занятость | action=check_free | |
Получение информации о доступных обновлениях сайта | action=upgrade_price | Структура ответа описана в Приложении 3. |
Получение информации о доступных товарах для оплаты сайта навсегда | action=forever_price | Структура ответа описана в Приложении 3. |
Обновление сайта | action=upgrade | |
product | Идентификатор товара (см. Приложение 3). |
Для одновременного выполнения создания сайта и его оплаты необходимо указать все необходимые параметры в одном запросе.
Структура ответа API
При успешном вызове:
{ result: <результат выполнения API> }
В случае возникновения ошибок:
{ result: false, errors: [ "Сообщение об ошибке", "Сообщение об ошибке", ... ] }
Приложение 1
Получение идентификаторов тарифа и товаров
Для получения данных о тарифах и товарах в формате JSON необходимо сделать запрос на URL
https://gate.umi.ru/goods.php
Структура ответа:
{ системное_имя_тарифа : { id : идентификатор_тарифа, name : наименование_тарифа, goods : { идентификатор_товара : {name : наименование_товара } }, { идентификатор_товара : {name : наименование_товара } }, ... }, ... }
Приложение 2
Автоматическая авторизация пользователя в административной зоне:
https://системный_домен_сайта/adminzone/?login=логин_пользователя&password=пароль_пользователя
Приложение 3
При успешном вызове поле result ответа API получения информации о доступных обновлениях тарифов сайта будет содержать JSON следующего формата:
{ системное_имя_тарифа : [ { id : <идентификатор тарифа>, name : <наименование тарифа>, goods : [ { идентификатор_товара : { name : <наименование товара>, price : <полная стоимость>, price_with_discount : <стоимость со скидкой>, expiration : <дата (в формате unix timestamp), до которой данные действительны> } }, ... ] }, ... ] }
Если в поле expiration содержится число 0 - это значит, что для данного состояния хоста время не ограничено (на данный момент таковым состоянием является неоплаченный хост).
Согласно текущей логике оплат, для неоплаченных сайтов в товарах будут товары на оплату временного промежутка нового тарифа. При оплате такого товара сайт перейдёт на новый тариф и станет оплаченным на выбранный интервал времени. Для платных хостов будет один товар, стоимость которого изменяется во времени (см. параметр expiration). При оплате такого товара хост останется оплаченным, перейдёт на новый тариф, но нового времени не получит.