W procesie zamawiania usługi na platformie Zomro należy przejść przez kilka ważnych etapów: dodanie usługi do koszyka, aktywacja kodu promocyjnego (jeśli jest dostępny) oraz bezpośrednio zakup usługi. Te kroki pozwalają efektywnie wykorzystać funkcjonalność kodów promocyjnych podczas zamówienia. Aby zrealizować zamówienie, należy przekazać określone parametry usługi, szczegóły dotyczące których przedstawione są poniżej.
Proces tworzenia zamówienia składa się z następujących etapów:
- Dodanie usługi do koszyka
- Aktywacja kodu promocyjnego
- Zakup usługi z koszyka
Użycie właśnie takich etapów zakupu pozwala na wykorzystanie kodu promocyjnego podczas zamówienia.
Aby stworzyć zamówienie, należy przekazać parametry usługi, które nas interesują. Jak uzyskać dostępne parametry, opisano tutaj.
Struktura zapytania do realizacji zamówienia usługi Cloud VPS Zomro:
URL:
https://api.zomro.com/
Metoda: POST
Treść zapytania (Form-data):
Parametr | Przykład wartości | Parametr obowiązkowy | Opis wartości |
func | v2.instances.order.param | Tak | Funkcja zamówienia usługi |
auth | 21fc199...c43f71 | Nie | Token sesji. To jedna z opcji autoryzacji. Szczegóły dotyczące innych opcji opisano tutaj |
out | json | Nie | W jakim formacie oczekiwać odpowiedzi od API |
sok | ok | Tak | Potwierdzenie operacji |
order_period | -50 | Tak | Dla usług cloudvps stosuje się codzienne obciążenie. Aby zrealizować zakup usługi, użyj wartości: -50, 1, 3, 6, 12. -50 - codzienne obciążenie, 1 - zamówienie usługi na 1 miesiąc, 3 - zamówienie na 3 miesiące i tak dalej. |
licence_agreement | on | Tak | Zgoda na warunki licencji |
pricelist | 6740 | Tak | ID taryfy, którą należy zamówić. ID taryfy można uzyskać z funkcji v2.instances.order.pricelist. Szczegóły dotyczące korzystania z tej funkcji opisano tutaj |
order_count | 1 | Tak | Liczba usług, które można zamówić w jednym zapytaniu |
force_use_new_cart | on | Tak | Dodanie usługi do nowego koszyka billmanager |
instances_ssh_keys | 490 | Nie | ID klucza SSH, który należy dodać do serwera po zainstalowaniu systemu operacyjnego. Nie trzeba przekazywać, jeśli parametr use_ssh_key=off |
password | Mypassword1 | Nie | Hasło dostępu do serwera. W przypadku Linux - hasło dla użytkownika root. W przypadku Windows - hasło użytkownika Administrator. Nie trzeba przekazywać, jeśli parametr use_ssh_key=on. Hasło musi zawierać przynajmniej 1 wielką literę, 1 cyfrę, a minimalna długość to 8 znaków. |
servername | MyServer | Nie | Własna nazwa serwera |
instances_os | 18d0ee2e-4d57-4f40-9b56-03c1773b5831 | Tak | UID systemu operacyjnego, który należy zainstalować. UID systemu operacyjnego można uzyskać z funkcji v2.instances.order.pricelist. Szczegóły dotyczące korzystania z tej funkcji opisano tutaj |
use_ssh_key | off | Nie | Czy używać klucza SSH, czy nie. Może przyjmować wartości off lub on. |
addon_xxx |
260 |
Nie | Dodatkowe parametry usługi. Może to być RAM, liczba CPU, rozmiar dysku, ilość transferu, typ IPv4 lub IPv6. Dostępne parametry zależą od taryfy. Aby dowiedzieć się, jakie opcje są dostępne, można zapoznać się z przykładem opisanym tutaj |
datacenter |
13 |
Tak | Numer centrum danych. Aby dowiedzieć się, jakie opcje są dostępne, można zapoznać się z przykładem opisanym tutaj |
backups_schedule | on | Nie | Tworzenie harmonogramu kopii zapasowych w czasie tworzenia kopii zapasowej |
backups_schedule_name | MyBackup | Tak, jeśli używane jest wartość backups_schedule | Nazwa harmonogramu tworzenia kopii zapasowej |
backups_schedule_rotation_days | 1,2,3,4,5,6,0 | Tak, jeśli używane jest wartość backups_schedule | W które dni tworzyć kopie zapasowe. Początek tygodnia zaczyna się od niedzieli i ma ID - 0. Odpowiednio poniedziałek ma wartość 1. Pozostałe dni tygodnia - odpowiednie wartości. |
backups_schedule_rotation_time | 04:20 | Tak, jeśli używane jest wartość backups_schedule | O której godzinie utworzyć kopię zapasową |
Przykład zamówienia usługi
Dla przykładu, użyjemy taryfy Cloud Essential z systemem operacyjnym Linux Ubuntu 20.04, serwer tylko z IPv6 i z użyciem hasła użytkownika root.
URL:
https://api.zomro.com/
Metoda: POST
Treść zapytania (Form-data):
Parametr | Wartość |
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 |
Oto przykład zapytania, które można wykonać z konsoli:
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"'
Po wykonaniu zapytania, potrzebne są dane, które znajdują się w następującej zagnieżdżonej strukturze:
doc
Oto wartości, które uzyskano w wyniku wykonania zapytania:
...,
"lineitem.id": {
"$": "1818"
},
...
Ta wartość "1818", która jest numerem zamówienia w koszyku, jest potrzebna do dalszej aktywacji usługi. Zapamiętajmy ją do dalszego użycia.
Po wykonaniu tego zapytania, w koszyku można również zobaczyć posiadany towar.
Następnym etapem będzie aktywacja kodu promocyjnego, jeśli taki istnieje. Ten etap nie jest obowiązkowy, ale jeśli klient ma kod promocyjny, byłoby wspaniale mieć możliwość jego użycia.
URL:
https://api.zomro.com/
Metoda: POST
Treść zapytania (Form-data):
Parametr | Przykład wartości | Parametr obowiązkowy | Opis wartości |
func | cart | Tak | Nazwa funkcji do pracy z koszykiem |
auth | 21fc199...c43f71 | Nie | Token sesji. To jedna z opcji autoryzacji. Szczegóły dotyczące innych opcji opisano tutaj |
out | json | Nie | W jakim formacie oczekiwać odpowiedzi od API |
sok | ok | Tak | Potwierdzenie operacji |
promocode | PROMO_2024 | Tak | Kod promocyjny, który planuje się użyć. |
clicked_button | apply_promocode | Tak | Potwierdzenie aktywacji kodu promocyjnego |
Oto przykład zapytania, które można wykonać z konsoli:
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"'
Po wykonaniu tego zapytania, w koszyku można zobaczyć wynik aktywacji kodu promocyjnego:
Na obrazku widać, że kod promocyjny PROMO_2024 został pomyślnie aktywowany.
PS: W rzeczywistości, kod promocyjny PROMO_2024, w twoim przypadku, nie jest ważny, został stworzony tylko na potrzeby napisania tej instrukcji.
Następnym etapem będzie aktywacja usługi.
W przypadku, gdy kod promocyjny nie pokrywa 100% kosztów, należy dodatkowo opłacić usługę z panelu użytkownika.
Rozważmy sytuację, gdy kod promocyjny nie pokrywa 100% kosztów usługi. Zapytanie API będzie wyglądać następująco:
URL:
https://api.zomro.com/
Metoda: POST
Treść zapytania (Form-data):
Parametr | Przykład wartości | Parametr obowiązkowy | Opis wartości |
func | cartorder.create.confirm | Tak | Funkcja do pracy z koszykiem |
auth | 21fc199...c43f71 | Nie | Token sesji. To jedna z opcji autoryzacji. Szczegóły dotyczące innych opcji opisano tutaj |
out | json | Nie | W jakim formacie oczekiwać odpowiedzi od API |
sok | ok | Tak | Potwierdzenie operacji |
elid | 1818 | Tak | ID zamówienia. Ta wartość została uzyskana podczas dodawania usługi do koszyka |
paymethod_id | 0 | Tak | ID metody płatności. Wartość 0 jest standardowa i odpowiada sposobowi płatności za zamówienie z salda osobistego |
Oto przykład zapytania, które można wykonać z konsoli:
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"'
Po wykonaniu tego zapytania, w koszyku tej usługi nie powinno być, w ogólnym wykazie usług CloudVPS widzimy naszą usługę w statusie "Aktywacja w toku":
W trakcie procesu aktywacji usługi dodatkowe działania z usługą są niedostępne. Po aktywacji usługi, otworzy się lista dostępnych działań do zarządzania usługami, takich jak: Start, Stop, Delete, Resize i inne.
Zachęcamy również do zapoznania się z artykułami, które mogą być przydatne w interakcji z produktami Cloud VPS za pomocą API:
- API - Uzyskiwanie informacji o dostępnych taryfach i ich parametrach
- API - Operacja Start & Stop
- API - Operacja Reboot
- API - Operacja Rebuild
- API - Operacja Delete
- API - Interakcja z Image
- API - Interakcja z Harmonogramem Kopii Zapasowych
- API - Interakcja z Rescue
- API - Interakcja z Backup
- API - Interakcja z Snapshots
- API - Interakcja z Boot From ISO