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 бачимо нашу послугу в статусі "Активація в процесі":

 

 

Під час процесу активації послуги додаткові дії з послугою відсутні. Після активації послуги, у нас відкриється список доступних дій, для управління послугами, такими як: Start, Stop, Delete, Resize, та інші.
 

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