УВІЙТИ
    opened image

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

    Процес створення замовлення складається з наступних етапів:

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

    Використання саме таких етапів покупки дозволяє використовувати промокод під час замовлення.

    Для створення замовлення потрібно передавати параметри послуги, які нас цікавлять. Як отримати доступні параметри, описано тут

     

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

    URL: 

    https://api.zomro.com/

    Метод: POST

    Тіло запиту (Form-data):
     

    Параметр Приклад значення Обов'язковий параметр Опис значення
    func v2.instances.order.param Так Функція замовлення послуги
    auth 21fc199...c43f71 Ні Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
    out json Ні У якому форматі очікувати відповідь від API
    sok ok Так Підтвердження операції
    order_period -50 Так Для послуг cloudvps використовується погодинна оплата. Для здійснення покупки послуги в погодинній оплаті використовується значення -50
    licence_agreement on Так Відповідає згоді з ліцензією на використання
    pricelist 6740 Так ID тарифу, який потрібно замовити. ID тарифу можна отримати з функції v2.instances.order.pricelist. Докладніше, як користуватися, описано тут
    order_count 1 Так Кількість послуг, які можна замовити в одному запиті
    force_use_new_cart on Так Додавання послуги в новий кошик billmanager
    instances_ssh_keys 490 Ні ID SSH ключа, який потрібно додати до сервера після встановлення ОС. Не потрібно передавати, якщо параметр use_ssh_key=off
    password Mypassword1 Ні Пароль доступу до сервера. У випадку з Linux - пароль для користувача root. У випадку Windows - пароль користувача Administrator. Не потрібно передавати, якщо параметр use_ssh_key=on.
    Також, пароль повинен містити хоча б 1 символ великої англійської літери, 1 цифровий символ, мінімальна кількість символів 8.  
    servername MyServer Ні Власна назва сервера
    instances_os 18d0ee2e-4d57-4f40-9b56-03c1773b5831 Так UID операційної системи, яку потрібно встановити. UID операційної системи можна отримати з функції v2.instances.order.pricelist. Докладніше, як користуватися, описано тут
    use_ssh_key off Ні Використовувати ssh ключ чи ні. Може приймати значення off або on.
    addon_xxx

    260

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

     

    Приклад замовлення послуги

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

    URL: 

    https://api.zomro.com/

    Метод: POST

     

    Тіло запиту (Form-data):

    Параметр Значення
    func v2.instances.order.param
    auth 21fc199...c43f71
    out json
    sok ok
    order_period -50
    licence_agreement on
    pricelist

    6740

    order_count 1
    password MyPassword1
    servername MyServer-1
    instances_os

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

    use_ssh_key off

    addon_6746

    260

    force_use_new_cart on

     

    Ось приклад запиту, який можна виконати з консолі:

    curl --location 'https://api.zomro.com/' \
    --form 'func="v2.instances.order.param"' \
    --form 'auth="211a9ac6309a9f0c340bdebf"' \
    --form 'out="json"' \
    --form 'sok="on"' \
    --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 'force_use_new_cart="on"'

     

    Після виконання запиту, нам потрібні дані, які знаходяться в наступній вкладеності:

    doc

     

    Ось значення, які отримані в результаті виконання запиту:

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

     

     

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

     

    Після виконання цього запиту, в кошику також можна побачити наявний товар.


     

    Наступним етапом буде активація промокоду, якщо такий присутній. Даний етап не є обов'язковим, але якщо клієнт має промокод, було б чудово мати можливість його використати.

    URL: 

    https://api.zomro.com/

    Метод: POST

    Тіло запиту (Form-data):

    Так

    Параметр Приклад значення Обов'язковий параметр Опис значення
    func cart Так Назва функції для роботи з кошиком
    auth 21fc199...c43f71 Ні Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
    out json Ні У якому форматі очікувати відповідь від API
    sok ok Підтвердження операції
    promocode PROMO_2024 Так Промокод, який планується використовувати. 
    clicked_button apply_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):

    Параметр Приклад значення Обов'язковий параметр Опис значення
    func cartorder.create.confirm Так Функція для роботи з кошиком
    auth 21fc199...c43f71 Ні Токен сесії. Це один з варіантів авторизації. Докладніше, які ще є варіанти, описані тут
    out json Ні У якому форматі очікувати відповідь від API
    sok ok Так Підтвердження операції
    elid 1818 Так ID замовлення. Це значення отримано при додаванні послуги в кошик
    paymethod_id 0 Так ID методу оплати. Значення 0 є стандартним і відповідає способу оплати замовлення за рахунок коштів з особистого рахунку

     

     

    Ось приклад запиту, який можна виконати з консолі:

     

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

     

     

    Після виконання цього запиту, в кошику даної послуги не повинно бути, в загальному списку послуг CloudVPS бачимо нашу послугу в статусі "Activation in progress":

     

     

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

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