Moduły WHMCS dla Proxmoxa, Pterodactyla i własnych paneli
WHMCS prowadzi klientów, faktury i terminy płatności. Moduł provisioningu sprawia, że po opłaceniu zamówienia VPS albo serwer gry powstaje sam, a po zaległości zostaje zawieszony. Piszemy takie moduły i hooki, a gdy WHMCS przestaje wystarczać, mówimy o naszym panelu Flaem.
Jak działa moduł provisioningu
Moduł to plik PHP w katalogu /modules/servers/ z funkcjami, które WHMCS wywołuje w określonych momentach życia usługi.
Kiedy WHMCS uruchamia funkcję
Opłacone zamówienie
Albo założenie usługi przez obsługę.
Zaległa faktura
Zadanie cron WHMCS przy zaległości.
Zapłata zaległości
Klient opłaca zaległą fakturę.
Długa zaległość
Cron, jeśli usuwanie jest włączone.
Funkcja modułu w /modules/servers/
CreateAccount
Zakłada usługę w panelu albo hypervisorze. Pakiet przekazuje modułowi ustawienia configoption1 do configoption24, np. węzeł i szablon.
Po: Opłacone zamówienie
SuspendAccount
Zawiesza usługę w panelu albo hypervisorze.
Po: Zaległa faktura
UnsuspendAccount
Przywraca zawieszoną usługę.
Po: Zapłata zaległości
TerminateAccount
Usuwa usługę z panelu albo hypervisora.
Po: Długa zaległość
Co ustawia WHMCS po success
Active i e-mail powitalny
Klient dostaje e-mail z danymi usługi.
Po: CreateAccount
Suspended
Status ustawia WHMCS, nie moduł.
Po: SuspendAccount
Active
Usługa wraca do działania.
Po: UnsuspendAccount
Terminated
Usługa kończy się w WHMCS.
Po: TerminateAccount
CreateAccount dla Proxmoxa
Jedno wywołanie CreateAccount w dzienniku modułu: parametry od WHMCS, zapytanie do Proxmox VE i to, co wraca do WHMCS. Sekret tokenu nie trafia do logu.
Węzeł i szablon z pakietu
Węzeł i szablon z ustawień pakietu. VMID wynika z ID usługi, więc ponowienie nie założy drugiej maszyny.
Sekret poza logiem
Zapis w Module Log, z sekretem tokenu usuniętym z treści. Token API Proxmoxa: użytkownik z ID tokenu w polu użytkownika serwera, sekret w polu hasła.
success, a reszta w tle
Identyfikator zadania czeka na dokończenie: konfigurację, hasło i start maszyny.
Proxmox i Pterodactyl od strony modułu
Dwa najczęstsze cele modułów WHMCS u firm hostingowych.
CreateAccount
Klient opłacił zamówienie i usługa ma powstać sama.
- POST .../qemu/{vmid}/clone klonuje szablon maszyny
- Proxmox oddaje identyfikator zadania UPID, klonowanie trwa w tle
- Zadanie dokańczające czeka na koniec, potem konfiguracja i start
- POST /api/application/servers z external_id zamówienia
- Serwer od razu jest w panelu
- Instalację według egga robi Wings
Przy Proxmoxie moduł potrzebuje zadania, które dokończy pracę po klonowaniu. W Pterodactylu wystarcza jedno wywołanie.
Ponowienie po awarii
Ta sama funkcja rusza drugi raz, np. po zerwanym połączeniu.
- VMID wynika z ID usługi
- Ponowione klonowanie dostaje ten sam VMID
- Druga maszyna nie powstanie
- Pole external_id wiąże serwer z zamówieniem
- Ponowienie najpierw szuka serwera po external_id
- Istniejący serwer wraca zamiast drugiego
Ochronę przed duplikatem daje w Proxmoxie stały VMID, a w Pterodactylu pole external_id.
SuspendAccount i UnsuspendAccount
Faktura jest zaległa, a potem klient ją opłaca.
- Cron WHMCS przy zaległości wywołuje SuspendAccount
- POST .../status/stop albo suspend
- Po zapłacie POST .../status/start
- Cron WHMCS przy zaległości wywołuje SuspendAccount
- POST /servers/{id}/suspend
- Po zapłacie POST /servers/{id}/unsuspend
W Proxmoxie moduł zatrzymuje albo usypia maszynę, w Pterodactylu woła zawieszenie serwera. Status Suspended w obu przypadkach ustawia WHMCS.
Uwierzytelnienie modułu
Proxmox VE: token API z własnymi uprawnieniami i datą ważności. Pterodactyl: klucz aplikacyjny Bearer.
- Proxmox VE
- Application API Pterodactyla
Od zapłaty do działającego VPS-a
Przebieg z modułem dla Proxmoxa: historia usługi w panelu klienta i to, co w tym czasie robią WHMCS, moduł i Proxmox VE.
Faktura opłacona
- KlientWHMCSopłaca zamówienie
- WHMCSModułCreateAccount z parametrami pakietu
Maszyna z szablonu
- ModułProxmox VEklonowanie szablonu maszynytoken API w nagłówku
- Proxmox VEModułidentyfikator zadania UPID
- ModułWHMCSsuccessstatus Active
Start i dane dostępu
- ModułProxmox VEpo zakończeniu zadania: konfiguracja i start
- WHMCSKliente-mail powitalny i dane dostępu
Długie operacje
Proxmox zwraca identyfikator zadania, a samo klonowanie trwa w tle. Moduł zapisuje go, a dokończenie robi zadanie, które sprawdza status.
Przyciski w panelu klienta
Start, stop i restart maszyny jako własne funkcje modułu, widoczne przy usłudze w panelu klienta WHMCS.
Najczęstsze pytania o WHMCS
Odpowiedzi o gotowych modułach, kilku węzłach, logowaniu do panelu, błędach i wycenie.
Czytaj dalej
Inne integracje dla hostingu i serwerów gier.
Zakładacie usługi w WHMCS ręcznie?
Napisz, jakiego panelu albo hypervisora używacie i co ma dziać się po płatności. Odpowiemy w godzinę z pytaniami i wyceną.


