Vi preprodajete naš hosting. Vaši klijenti pripadaju Vama: Vaše cijene, Vaši računi, Vaš pružatelj platnih usluga. Ovako upravljate našom platformom iz onoga što već koristite — panela za naplatu, vlastite WordPress stranice ili skripte.
Što Vaši klijenti zapravo vide
Prije tehničkih pojedinosti: Vaši klijenti nas nikada ne moraju vidjeti. Tri sučelja, a Vi birate koje ćete koristiti.
| Sučelje | Čije je |
|---|
| Hosting panel, na Vašem vlastitom nazivu poslužitelja (hostname) | Postavite naziv poslužitelja panela pod Preprodaja → Vaš brend i Vaši se klijenti prijavljuju na panel.vasatvrtka.com s Vašim logotipom i Vašim bojama. Isti panel, Vaša adresa. |
| Vaša vlastita web-stranica | WordPress dodatak postavlja pretragu domena i poveznicu za prijavu jednim klikom na Vašu stranicu te preuzima narudžbu putem Vaše vlastite WooCommerce naplate. |
| Vaš panel za naplatu | WHMCS ili HostBill ostaju ulazna vrata; modul pruža uslugu (provisioning) u pozadini, a gumb u korisničkom sučelju prijavljuje ih izravno u njihov hosting. |
⛔ Što god odabrali, Vi ste evidentirani trgovac (merchant of record) za svoje klijente: Vaše cijene, Vaši računi, Vaš OIB/PDV identifikacijski broj, Vaš pružatelj platnih usluga. Mi naplaćujemo Vama, jednom mjesečno, po veleprodajnim cijenama.
Kada postavite naziv poslužitelja panela, unesite ga u polje Adresa panela unutar WordPress dodatka i nigdje drugdje — poveznice za prijavu koje generira ovaj API automatski ga prate.
Četiri načina pristupa
Postoje četiri načina pristupa i svi u pozadini rade istu stvar:
| Za |
|---|
| WHMCS modul | WHMCS trgovinu |
| HostBill modul | HostBill trgovinu |
| WordPress dodatak | Prodaju s Vaše vlastite WordPress ili WooCommerce stranice |
| API | Sve ostalo — Blesta, interni sustav, cron skripta |
1. Dohvatite API ključ
Na svojoj nadzornoj ploči idite na API ključevi i izradite ga. Dodijelite mu samo ono što mu je potrebno:
| Dozvola | Svrha |
|---|
org.read | Čitanje računa Vaših klijenata |
sites.create | Izrada (provisioning) stranice |
sites.view | Pregled usluge |
sites.delete | Prekid usluge (terminacija) |
reseller.view | Prikaz popisa Vaših usluga i pregled korištenja |
reseller.provision | Suspenzija, reaktivacija i prijava klijenta |
⛔ Nemojte dodijeliti integraciji dozvolu reseller.manage. Ta dozvola omogućuje uređivanje Vašeg cjenika i Vaših pristupnih podataka za platni pristupnik. reseller.provision postoji upravo zato da ključ koji zalijepite u panel za naplatu ili web-stranicu ne treba tu dozvolu.
Ključ se prikazuje samo jednom. Pohranite ga tamo gdje pohranjujete ostale pristupne podatke — nikada u datoteku koju poslužuje Vaš web-poslužitelj.
2. Izvršite svoj prvi poziv
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
To vraća svaku uslugu koju ste izradili, jedan redak po stranici, s klijentom kojem pripada, njezinim statusom i iznosom koji za nju naplaćujete. Na novom računu to je prazan popis — što je ispravan odgovor, a ne pogreška.
3. Cijela integracija, u šest poziva
KADA POZIV
je narudžba plaćena POST /v1/orgs jednom po KLIJENTU
POST /v1/sites jednom po USLUZI
nisu platili POST /v1/reseller/services/{siteId}/suspend
plate POST /v1/reseller/services/{siteId}/unsuspend
otkažu DELETE /v1/sites/{siteId}
"prijava na hosting" POST /v1/reseller/services/{siteId}/sso
Izrada (provisioning) se sastoji od dva poziva, a ključevi su važni:
# 1. račun klijenta — vezan uz VAŠ identifikator klijenta
curl -X POST https://api.zinndigital.com/v1/orgs \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: account-4211" \
-d '{"type":"customer","name":"Acme Ltd"}'
# 2. njihova stranica — vezana uz VAŠ identifikator usluge
curl -X POST https://api.zinndigital.com/v1/sites \
-H "Authorization: Bearer zdk_live_…" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: service-9915" \
-d '{"org_id":"<from step 1>","product_line":"mainstream","primary_domain":"acme.com"}'
Dva pravila koja koštaju novca ako ih pogrešno primijenite
- Vežite račun uz svog KLIJENTA, a stranicu uz svoju USLUGU. Druga narudžba klijenta mora završiti na računu koji već ima. Ako oboje vežete uz uslugu, jedan klijent završava s tri nepovezana računa i tri zasebna panela.
- Pošaljite
Idempotency-Key pri svakom POST pozivu, izgrađen od Vašeg vlastitog identifikatora za tu stavku. Svaki sustav naplate ponavlja pokušaje — povratni poziv pristupnika stiže dvaput, administrator ponovno pokreće neuspjelu izradu, klijent dvaput klikne. Bez ključa, drugi pokušaj stvara drugu stranicu i ona Vam se naplaćuje.
Tri odgovora koja ne smijete svesti na dva
unsuspend može odgovoriti s 409. To znači da je naš tim za zlouporabu zadržao stranicu, a ne Vi. Prikažite poruku; nemojte ponavljati pokušaj.
- **Prekid usluge zakazuje brisanje, ne izvršava ga odmah.** Datum se vraća kao
pending_deletion_at. Reći klijentu da su njegovi podaci već izbrisani kada nisu, gore je nego ne reći mu ništa.
disk_used_bytes može biti null, a null nije nula. To znači da nismo mogli izmjeriti, a ne da se ništa nije koristilo. Preskočite to — nemojte upisivati 0 u svoje zapise ili ćete klijentu prikazati zelenu traku potrošnje za stranicu za koju nemate očitanje.
4. Prijava klijenta
POST /v1/reseller/services/{siteId}/sso vraća jednokratni URL koji Vašeg klijenta vodi izravno u njegov vlastiti račun, već prijavljenog.
⛔ Generirajte ga kada kliknu, nikada kada renderirate stranicu. Poveznica je za jednokratnu upotrebu i istječe u roku od nekoliko minuta, tako da se poveznica zapisana u stranicu potroši pri prvom prikazu stranice i ostane u svakoj međuspremnici (cacheu) između Vas i preglednika.
5. Umjesto toga instalirajte modul
- WHMCS — kopirajte modul u
modules/servers/zinn/, dodajte poslužitelj čija je Lozinka Vaš API ključ i postavite liniju proizvoda na proizvodu. Pritisnite Test Connection: to izvršava stvarni poziv i javlja Vam što je platforma odgovorila.
- HostBill — kopirajte u
includes/modules/Hosting/zinn/ i povežite ga na isti način.
- WordPress — paket Zinn® Reseller Toolkit: pretraga domena, poveznica za prijavu u hosting Vaših klijenata i WooCommerce izrada (provisioning) kada je narudžba plaćena. Otvorenog koda na <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, ili ga preuzmite pod Dodaci na svojoj nadzornoj ploči.
6. Pokretanje uživo
Provjerite ovo prije nego što preuzmete stvarnu narudžbu:
- Test povezivanja na modulu prolazi ili Vaš prvi
curl vraća popis.
- Vaš cjenik je postavljen (Preprodaja → Vaše cijene).
- Vaš platni pristupnik je povezan (Preprodaja → Platni pristupnici) — Vaši klijenti plaćaju Vama, putem Vašeg vlastitog računa.
- Podaci o Vašoj tvrtki su uneseni (Preprodaja → Vaša tvrtka) tako da računi Vaših klijenata sadrže Vaš pravni subjekt i OIB/PDV identifikacijski broj, a ne naš.
- Proveli ste jednu stvarnu narudžbu od početka do kraja i vidjeli kako se stranica pojavila.
Gdje se nalazi sve ostalo
Kompletna API dokumentacija — svaka krajnja točka, generirana iz naše specifikacije, s dozvolom koja je potrebna za svaku od njih — nalazi se na <https://zinndigital.com/developers/api>.