В процессе заказа услуги на платформе 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, 1, 3, 6, 12. -50 - ежедневное списание, 1 - заказ услуги на 1 месяц, 3 - заказ на 3 месяца и так далее. |
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. Доступные параметры зависят от тарифа. Узнать, какие опции доступны, можно в примере, описанном здесь |
datacenter | 13 | Да | Номер дата центра. Узнать, какие опции доступны, можно в примере, описанном здесь |
backups_schedule | on | Нет | Создание расписание бекапов, во времья создании резервной копии |
backups_schedule_name | MyBackup | Да, если используется значение backups_schedule | Название расписание на создание резервной копии |
backups_schedule_rotation_days | 1,2,3,4,5,6,0 | Да, если используется значение backups_schedule | В какие дни создавать резервные копии. Начало недели начинается с воскресенья, и имеет ID - 0. Соответственно понедельник имеет значение 1. Остальные дни недели - соответствующие значения. |
backups_schedule_rotation_time | 04:20 | Да, если используется значение backups_schedule | В какое время создать резервную копию |
Пример заказа услуги
Для примера, используем тариф 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 |
datacenter | 13 |
Вот пример запроса, который можно выполнить из консоли:
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):
Параметр | Пример значения | Обязательный параметр | Описание значения |
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="ok"' \
--form 'elid="1818"' \
--form 'paymethod_id="0"'
После выполнения этого запроса, в корзине данной услуги не должно быть, в общем списке услуг CloudVPS видим нашу услугу в статусе "Activation in progress":
Во время процесса активации услуги дополнительные действия с услугой отсутствуют. После активации услуги, у нас откроется список доступных действий, для управления услугами, такими как: Start, Stop, Delete, Resize, и другие.
Также предлагаем изучить статьи, которые могут быть в полезными для взаимодействия с продуктами Cloud VPS с помощью API:
- API - Получение информации о доступных тарифах и их параметрах
- API - Операция Start & Stop
- API - Операция Reboot
- API - Операция Rebuild
- API - Операция Delete
- API - Взаимодействие с Image
- API - Взаимодействие с Backup Schedule
- API - Взаимодействие с Rescue
- API - Взаимодействие с Backup
- API - Взаимодействие с Snapshots
- API - Взаимодействие с Boot From ISO