Base di conoscenza

Rivendere l'hosting Zinn® dai tuoi sistemi

Gestisci l'hosting di Zinn dal tuo pannello di fatturazione, dal tuo sito WordPress o dai tuoi script: ottieni una chiave API, effettua la tua prima chiamata e le sei chiamate di cui si compone l'intera integrazione.

Tu rivendi il nostro hosting. I tuoi clienti sono tuoi: i tuoi prezzi, le tue fatture, il tuo provider di pagamento. È così che gestisci la nostra piattaforma da qualsiasi strumento tu stia già usando: un pannello di fatturazione, il tuo sito WordPress o uno script.

Cosa vedono realmente i tuoi clienti

Prima dei dettagli tecnici: i tuoi clienti non devono mai vederci. Tre interfacce, e scegli tu quale usare.

| Interfaccia | Di chi è | |---|---| | Il pannello di hosting, sul tuo hostname | Imposta un hostname per il pannello in Rivendita → Il tuo marchio e i tuoi clienti accederanno su panel.tuazienda.com con il tuo logo e i tuoi colori. Lo stesso pannello, il tuo indirizzo. | | Il tuo sito web | Il plugin WordPress inserisce la ricerca domini e un link di accesso con un clic sul tuo sito, e gestisce l'ordine tramite il tuo checkout di WooCommerce. | | Il tuo pannello di fatturazione | WHMCS o HostBill rimane la porta d'accesso; il modulo effettua il provisioning in background e il pulsante nell'area clienti li collega direttamente al loro hosting. |

⛔ Qualsiasi cosa tu scelga, sei tu il merchant of record per i tuoi clienti: i tuoi prezzi, le tue fatture, la tua partita IVA, il tuo provider di pagamento. Fatturiamo a te, una volta al mese, a prezzo all'ingrosso.

Una volta impostato l'hostname del pannello, inseriscilo nel campo Indirizzo del pannello del plugin WordPress e in nessun altro posto: i link di accesso generati da questa API seguiranno quell'indirizzo automaticamente.

I quattro modi per iniziare

Ci sono quattro modi per iniziare, e tutti fanno la stessa cosa sotto il cofano:

| | Per | |---|---| | Il modulo WHMCS | Un negozio WHMCS | | Il HostBill modulo | Un negozio HostBill | | Il plugin WordPress | Vendere dal tuo sito WordPress o WooCommerce | | L'API | Qualsiasi altra cosa — Blesta, un sistema interno, uno script cron |

1. Ottieni una chiave API

Nella tua dashboard, vai su Chiavi API e creane una. Assegnale solo i permessi di cui ha bisogno:

| Permesso | Perché | |---|---| | org.read | Leggere gli account dei tuoi clienti | | sites.create | Effettuare il provisioning di un sito | | sites.view | Leggere un servizio | | sites.delete | Terminare | | reseller.view | Elencare i tuoi servizi e leggere l'utilizzo | | reseller.provision | Sospendere, rilasciare e autenticare un cliente |

Non assegnare reseller.manage a un'integrazione. Quel permesso modifica il tuo listino prezzi e le credenziali del tuo gateway di pagamento. reseller.provision esiste proprio affinché una chiave incollata in un pannello di fatturazione o in un sito web non ne abbia bisogno.

La chiave viene mostrata una sola volta. Conservala dove tieni le tue altre credenziali, mai in un file pubblicato dal tuo server web.

2. Effettua la tua prima chiamata

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

Questo restituisce ogni servizio di cui hai effettuato il provisioning, una riga per sito, con il cliente a cui appartiene, il suo stato e quanto gli addebiti. Su un account nuovo è una lista vuota, che è la risposta corretta, non un errore.

3. L'intera integrazione in sei chiamate

QUANDO                CHIAMATA
un ordine è pagato    POST   /v1/orgs                                   una volta per CLIENTE
                      POST   /v1/sites                                  una volta per SERVIZIO
non hanno pagato      POST   /v1/reseller/services/{siteId}/suspend
pagano                POST   /v1/reseller/services/{siteId}/unsuspend
cancellano            DELETE /v1/sites/{siteId}
"accedi all'hosting"  POST   /v1/reseller/services/{siteId}/sso

Il provisioning consiste in due chiamate, e le chiavi sono importanti:

# 1. l'account del cliente — basato sul TUO ID cliente
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. il loro sito — basato sul TUO ID servizio
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"}'

Due regole che costano denaro se non vengono rispettate

  1. Usa il tuo CLIENTE come chiave per l'account e il tuo SERVIZIO per il sito. Il secondo ordine di un cliente deve finire nell'account che possiede già. Se usi il servizio come chiave per entrambi, un cliente finirà per avere tre account non correlati e tre pannelli separati.
  2. Invia un Idempotency-Key a ogni POST, costruito usando il tuo ID per quell'elemento. Qualsiasi sistema di fatturazione effettua tentativi ripetuti: il callback di un gateway arriva due volte, un amministratore ripete un provisioning fallito, un cliente fa doppio clic. Senza la chiave, il secondo tentativo creerà un secondo sito e ti verrà addebitato.

Tre risposte che non devi appiattire in due

  • unsuspend può rispondere con 409. Significa che il nostro team anti-abuso sta bloccando il sito, non tu. Mostra il messaggio; non riprovare.
  • **La terminazione programma un'eliminazione, non la esegue immediatamente.** La data viene restituita come pending_deletion_at. Dire a un cliente che i suoi dati sono già spariti quando non è vero è peggio che non dirgli nulla.
  • disk_used_bytes può essere null, e null non è zero. Significa che non è stato possibile misurare, non che non è stato usato nulla. Ignoralo: non scrivere 0 nei tuoi record, o mostrerai a un cliente una barra di utilizzo verde per un sito di cui non hai dati.

4. Autentica un cliente

POST /v1/reseller/services/{siteId}/sso restituisce un URL monouso che indirizza direttamente il tuo cliente nel suo account, già autenticato.

Generalo al momento del clic, mai quando renderizzi la pagina. Il link è monouso e scade nel giro di pochi minuti, quindi un link scritto in una pagina viene esaurito alla prima visualizzazione e memorizzato in qualsiasi cache tra te e il browser.

5. In alternativa, installa un modulo

  • WHMCS — copia il modulo in modules/servers/zinn/, aggiungi un server la cui Password è la tua chiave API e imposta la linea di prodotto sul prodotto. Clicca su Test Connessione: effettuerà una chiamata reale e ti dirà cosa ha risposto la piattaforma.
  • HostBill — copialo in includes/modules/Hosting/zinn/ e connettilo allo stesso modo.
  • WordPress — il Zinn® Reseller Toolkit: ricerca domini, un link di accesso all'hosting dei tuoi clienti e provisioning WooCommerce quando un ordine viene pagato. Open source su <https://github.com/Zinn-Digital/zinn-reseller-toolkit> oppure scaricalo da Plugin nella tua dashboard.

6. Vai online

Verifica quanto segue prima di accettare un ordine reale:

  • Il test di connessione sul modulo va a buon fine, oppure il tuo primo curl restituisce un elenco.
  • Il tuo listino prezzi è impostato (Rivendita → I tuoi prezzi).
  • Il tuo gateway di pagamento è connesso (Rivendita → Gateway di pagamento) — i tuoi clienti pagano te, tramite il tuo account.
  • I dettagli della tua azienda sono inseriti (Rivendita → La tua azienda) in modo che le fatture dei tuoi clienti riportino la tua entità legale e la tua partita IVA, non la nostra.
  • Hai effettuato un ordine reale end-to-end e hai visto il sito comparire.

Dove trovare tutto il resto

La documentazione API completa — ogni endpoint, generato dalla nostra specifica, con il permesso di cui ciascuno ha bisogno — si trova su <https://zinndigital.com/developers/api>.

Ancora bloccato?

Il supporto è incluso in ogni piano con risposte nella tua lingua.

Contatta il supporto Tutti gli articoli
Rivendere l'hosting Zinn® dai tuoi sistemi