opened image

API - Создание услуги

В процессе заказа услуги на платформе Zomro необходимо следовать нескольким важным этапам: добавление услуги в корзину, активация промокода (при наличии), и непосредственно покупка услуги. Эти шаги позволяют эффективно использовать функционал промокодов во время заказа. Для осуществления заказа необходимо передавать определённые параметры услуги, подробности о которых представлены ниже.

Процесс создания заказа состоит из следующих этапов:

  • Добавление услуги в корзину
  • Активация промокода
  • Покупка услуги из корзины

Использование именно таких этапов покупки позволяет использовать промокод во время заказа.

Для создания заказа нужно передавать параметры услуги, которые нас интересуют. Как получить доступные параметры, описано здесь

 

Структура запроса для осуществления заказа услуги Cloud VPS Zomro:
 

URL: 

https://api.zomro.com/

Метод: POST

Тело запроса (Form-data):
 

ПараметрПример значенияОбязательный параметрОписание значения
funcv2.instances.order.paramДаФункция заказа услуги
auth21fc199...c43f71НетТокен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь
outjsonНетВ каком формате ожидать ответ от API
sokokДаПодтверждение операции
order_period-50ДаДля услуг cloudvps используется ежедневное списание. Для осуществления покупки услуги используете значение: -50, 1,  3,  6,  12.
-50 - ежедневное списание, 1 - заказ услуги на 1 месяц, 3 - заказ на 3 месяца и так далее.
licence_agreementonДаСоответствует согласию с лицензией на использование
pricelist6740ДаID тарифа, который нужно заказать. ID тарифа можно получить из функции v2.instances.order.pricelist. Подробнее, как пользоваться, описано здесь
order_count1ДаКоличество услуг, которые можно заказать в одном запросе
force_use_new_cartonДаДобавление услуги в новую корзину billmanager
instances_ssh_keys490НетID SSH ключа, который нужно добавить к серверу после установки ОС. Не нужно передавать, если параметр use_ssh_key=off
passwordMypassword1НетПароль доступа к серверу. В случае с Linux - пароль для пользователя root. В случае Windows - пароль пользователя Administrator. Не нужно передавать, если параметр use_ssh_key=on.
Также, пароль должен содержать хотя бы 1 символ заглавной английской буквы, 1 цифровой символ, минимальное количество символов 8.  
servernameMyServerНетСобственное название сервера
instances_os18d0ee2e-4d57-4f40-9b56-03c1773b5831ДаUID операционной системы, которую нужно установить. UID операционной системы можно получить из функции v2.instances.order.pricelist. Подробнее, как пользоваться, описано здесь
use_ssh_keyoffНетИспользовать ssh ключ или нет. Может принимать значения off или on.
addon_xxx

260

НетДополнительные параметры услуги. Может быть как RAM, количество CPU, размер диска, объем трафика, тип IPv4 или IPv6. Доступные параметры зависят от тарифа. Узнать, какие опции доступны, можно в примере, описанном здесь
datacenter

13

ДаНомер дата центра. Узнать, какие опции доступны, можно в примере, описанном здесь
backups_scheduleonНетСоздание расписание бекапов, во времья создании резервной копии
backups_schedule_nameMyBackupДа, если используется значение backups_scheduleНазвание расписание на создание резервной копии
backups_schedule_rotation_days1,2,3,4,5,6,0Да, если используется значение backups_scheduleВ какие дни создавать резервные копии. Начало недели начинается с воскресенья, и имеет ID - 0. Соответственно понедельник имеет значение 1. Остальные дни недели - соответствующие значения.
backups_schedule_rotation_time04:20Да, если используется значение backups_scheduleВ какое время создать резервную копию

 

 

Пример заказа услуги

Для примера, используем тариф Cloud Essential с ОС Linux Ubuntu 20.04, сервер только с IPv6 и с использованием пароля пользователя root.

URL: 

https://api.zomro.com/

Метод: POST

 

Тело запроса (Form-data):

ПараметрЗначение
funcv2.instances.order.param
auth21fc199...c43f71
outjson
sokok
order_period-50
licence_agreementon
pricelist

6740

order_count1
passwordMyPassword1
servernameMyServer-1
instances_os

479c96f1-ccc6-47a2-952c-c9e3bbdc8d07

use_ssh_keyoff

addon_6746

260

force_use_new_carton
datacenter13

 

Вот пример запроса, который можно выполнить из консоли:

curl --location 'https://api.zomro.com/' \
--form 'func="v2.instances.order.param"' \
--form 'auth="211a9ac6309a9f0c340bdebf"' \
--form 'out="json"' \
--form 'sok="ok"' \
--form 'order_period="-50"' \
--form 'licence_agreement="on"' \
--form 'use_ssh_key="off"' \
--form 'pricelist="6740"' \
--form 'servername="MyServer-1"' \
--form 'password="Mypassword1"' \
--form 'instances_os="479c96f1-ccc6-47a2-952c-c9e3bbdc8d07"' \
--form 'order_count="1"' \
--form 'addon_6746="260"' \
--form 'datacenter="13"' \
--form 'force_use_new_cart="on"'

 

После выполнения запроса, нам нужны данные, которые находятся в следующей вложенности:

doc

 

Вот значения, которые получены в результате выполнения запроса:

...,

"lineitem.id": {
    "$": "1818"
},
...

 

 

Данное значение "1818", что является номером заказа в корзине, нужно для дальнейшей активации услуги. Запомним его для дальнейшего использования.

 

После выполнения этого запроса, в корзине также можно увидеть имеющийся товар.


 

Следующим этапом будет активация промокода, если таковой присутствует. Данный этап не является обязательным, но если клиент имеет промокод, было бы замечательно иметь возможность его использовать.

URL: 

https://api.zomro.com/

Метод: POST

Тело запроса (Form-data):

ПараметрПример значенияОбязательный параметрОписание значения
funccartДаНазвание функции для работы с корзиной
auth21fc199...c43f71НетТокен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь
outjsonНетВ каком формате ожидать ответ от API
sokokДаПодтверждение операции
promocodePROMO_2024ДаПромокод, который планируется использовать. 
clicked_buttonapply_promocodeДаПодтверждение активации промокода

 

Вот пример запроса, который можно выполнить из консоли:

curl --location 'https://api.zomro.com/' \
--form 'out="json"' \
--form 'auth="46ffb314c8d46ec1f2f1df16"' \
--form 'func="cart"' \
--form 'promocode="PROMO_2024"' \
--form 'sok="ok"' \
--form 'clicked_button="apply_promocode"'

 

После выполнения этого запроса, в корзине можно увидеть результат активации промокода:

 

 

На изображении видно, что промокод PROMO_2024 успешно активирован. 
PS: На самом деле, промокод PROMO_2024, в вашем случае, не является действительным, он был создан только для написания этой инструкции.

Следующим этапом будет активация услуги.

В случае, если промокод не предоставляет 100% сумму скидки, нужно дополнительно оплатить услугу из личного кабинета. 

Рассмотрим ситуацию, если промокод не покрывает 100% стоимость услуги. Запрос API будет выглядеть следующим образом:

 URL: 

https://api.zomro.com/

Метод: POST

Тело запроса (Form-data):

ПараметрПример значенияОбязательный параметрОписание значения
funccartorder.create.confirmДаФункция для работы с корзиной
auth21fc199...c43f71НетТокен сессии. Это один из вариантов авторизации. Подробнее, какие еще есть варианты, описаны здесь
outjsonНетВ каком формате ожидать ответ от API
sokokДаПодтверждение операции
elid1818ДаID заказа. Это значение получено при добавлении услуги в корзину
paymethod_id0ДаID метода оплаты. Значение 0 является стандартным и соответствует способу оплаты заказа за счет средств с личного счета

 

 

Вот пример запроса, который можно выполнить из консоли:

 

curl --location 'https://api.zomro.com/' \
--form 'out="json"' \
--form 'auth="cd63c7832f0ae5947c49ac06"' \
--form 'func="cartorder.create.confirm"' \
--form 'sok="ok"' \
--form 'elid="1818"' \
--form 'paymethod_id="0"'

 

 

После выполнения этого запроса, в корзине данной услуги не должно быть, в общем списке услуг CloudVPS видим нашу услугу в статусе "Activation in progress":

 

 

Во время процесса активации услуги дополнительные действия с услугой отсутствуют. После активации услуги, у нас откроется список доступных действий, для управления услугами, такими как: Start, Stop, Delete, Resize, и другие.
 

Также предлагаем изучить статьи, которые могут быть в полезными для взаимодействия с продуктами Cloud VPS с помощью API: