Wissensdatenbank
Verkauf von Zinn® Hosting über Ihre eigenen Systeme
Steuere das Zinn-Hosting von deinem eigenen Abrechnungspanel, deiner WordPress-Site oder deinen Skripten aus: Hol dir einen API-Schlüssel, tätige deinen ersten Aufruf und nutze die sechs Aufrufe, aus denen die gesamte Integration besteht.
Sie verkaufen unser Hosting weiter. Ihre Kunden gehören Ihnen: Ihre Preise, Ihre Rechnungen, Ihr Zahlungsanbieter. Auf diese Weise steuern Sie unsere Plattform von allem aus, was Sie bereits nutzen – einem Billing-Panel, Ihrer eigenen WordPress-Website oder einem Skript.
Was Ihre Kunden tatsächlich sehen
Vor der Mechanik: Ihre Kunden müssen uns niemals sehen. Drei Oberflächen, und Sie wählen, welche Sie nutzen.
| Oberfläche | Wessen Oberfläche es ist | |---|---| | Das Hosting-Panel auf Ihrem eigenen Hostnamen | Legen Sie einen Panel-Hostnamen unter Reselling → Ihre Marke fest und Ihre Kunden melden sich unter panel.yourcompany.com mit Ihrem Logo und Ihren Farben an. Dasselbe Panel, Ihre Adresse. | | Ihre eigene Website | Das WordPress-Plugin fügt Ihrer Website eine Domain-Suche und einen Ein-Klick-Anmelde-Link hinzu und wickelt die Bestellung über Ihren eigenen WooCommerce-Checkout ab. | | Ihr Billing-Panel | WHMCS oder HostBill bleibt das Aushängeschild; das Modul stellt dahinter bereit und die Schaltfläche im Kundenbereich meldet sie direkt in ihrem Hosting an. |
⛔ Egal, wofür Sie sich entscheiden, Sie sind der Vertragspartner (Merchant of Record) für Ihre Kunden: Ihre Preise, Ihre Rechnungen, Ihre USt-IdNr., Ihr Zahlungsanbieter. Wir stellen Ihnen einmal im Monat den Großhandelspreis in Rechnung.
Sobald Sie einen Panel-Hostnamen festgelegt haben, tragen Sie ihn im Feld Panel-Adresse des WordPress-Plugins ein und sonst nirgendwo – die Anmelde-Links, die diese API generiert, folgen ihm automatisch.
Die vier Wege zum Ziel
Es gibt vier Wege zum Ziel, und sie tun unter der Haube alle dasselbe:
| | Für | |---|---| | Das WHMCS-Modul | Einen WHMCS-Shop | | Das HostBill-Modul | Einen HostBill-Shop | | Das WordPress-Plugin | Den Verkauf über Ihre eigene WordPress- oder WooCommerce-Website | | Die API | Alles andere – Blesta, ein internes System, ein Cron-Skript |
1. Holen Sie sich einen API-Schlüssel
Gehen Sie in Ihrem Dashboard zu API-Schlüssel und erstellen Sie einen. Geben Sie ihm nur das, was er benötigt:
| Berechtigung | Warum | |---|---| | org.read | Lesen Ihrer Kundenkonten | | sites.create | Bereitstellen einer Website | | sites.view | Lesen eines Dienstes | | sites.delete | Kündigen | | reseller.view | Auflisten Ihrer Dienste und Lesen der Nutzung | | reseller.provision | Sperren, Freigeben und Anmelden eines Kunden |
⛔ Geben Sie einer Integration nicht reseller.manage. Diese Berechtigung bearbeitet Ihre Preisliste und die Zugangsdaten Ihres eigenen Payment-Gateways. reseller.provision existiert genau aus dem Grund, damit ein Schlüssel, den Sie in ein Billing-Panel oder eine Website einfügen, diese Berechtigung nicht benötigt.
Der Schlüssel wird nur einmal angezeigt. Speichern Sie ihn dort, wo Sie Ihre anderen Zugangsdaten aufbewahren – niemals in einer Datei, die von Ihrem Webserver bereitgestellt wird.
2. Führen Sie Ihren ersten Aufruf aus
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
Das gibt jeden von Ihnen bereitgestellten Dienst zurück, eine Zeile pro Website, mit dem zugehörigen Kunden, seinem Status und dem Preis, den Sie dafür berechnen. Bei einem neuen Konto ist es eine leere Liste – was die korrekte Antwort ist, kein Fehler.
3. Die gesamte Integration in sechs Aufrufen
WANN AUFRUF
eine Bestellung bezahlt ist POST /v1/orgs einmal pro KUNDE
POST /v1/sites einmal pro DIENST
sie nicht bezahlt haben POST /v1/reseller/services/{siteId}/suspend
sie bezahlen POST /v1/reseller/services/{siteId}/unsuspend
sie kündigen DELETE /v1/sites/{siteId}
"im Hosting anmelden" POST /v1/reseller/services/{siteId}/sso
Die Bereitstellung umfasst zwei Aufrufe, und die Schlüssel sind wichtig:
# 1. das Konto des Kunden — bezogen auf IHRE Kunden-ID
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. die Website des Kunden — bezogen auf IHRE Dienst-ID
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"}'
Zwei Regeln, die Geld kosten, wenn Sie sie falsch machen
- Beziehen Sie das Konto auf Ihren KUNDEN und die Website auf Ihren DIENST. Die zweite Bestellung eines Kunden muss in dem Konto landen, das er bereits hat. Beziehen Sie beide auf den Dienst, endet ein Kunde mit drei unzusammenhängenden Konten und drei separaten Panels.
- Senden Sie einen
Idempotency-Keybei jedemPOST, der aus Ihrer eigenen ID für das Objekt erstellt wurde. Jedes Abrechnungssystem führt erneute Versuche durch – ein Gateway-Callback trifft zweimal ein, ein Administrator führt eine fehlgeschlagene Bereitstellung erneut aus, ein Kunde klickt doppelt. Ohne den Schlüssel erstellt der zweite Versuch eine zweite Website und diese wird Ihnen in Rechnung gestellt.
Drei Antworten, die Sie nicht zu zwei zusammenfassen dürfen
unsuspendkann mit409antworten. Das bedeutet, dass unser Abuse-Team die Website sperrt, nicht Sie. Zeigen Sie die Nachricht an; versuchen Sie es nicht erneut.- **Das Kündigen terminiert eine Löschung, führt sie aber nicht sofort aus.** Das Datum wird als
pending_deletion_atzurückgegeben. Einem Kunden zu sagen, dass seine Daten bereits gelöscht sind, wenn dies nicht der Fall ist, ist schlimmer als ihm gar nichts zu sagen. disk_used_byteskannnullsein, und null ist nicht gleich Null. Es bedeutet, dass wir nicht messen konnten, nicht dass nichts verbraucht wurde. Überspringen Sie es – schreiben Sie kein0in Ihre eigenen Datensätze, sonst zeigen Sie einem Kunden einen grünen Nutzungsbalken für eine Website an, von der Sie keinen Messwert haben.
4. Melden Sie einen Kunden an
POST /v1/reseller/services/{siteId}/sso gibt eine einmalig verwendbare URL zurück, die Ihren Kunden direkt in sein eigenes Konto weiterleitet, bereits angemeldet.
⛔ Erstellen Sie sie, wenn der Kunde klickt, niemals beim Rendern der Seite. Der Link ist einmalig verwendbar und läuft innerhalb von Minuten ab. Ein in eine Seite geschriebener Link wird daher beim ersten Seitenaufruf verbraucht und in jedem Cache zwischen Ihnen und dem Browser hinterlegt.
5. Installieren Sie stattdessen ein Modul
- WHMCS – kopieren Sie das Modul nach
modules/servers/zinn/, fügen Sie einen Server hinzu, dessen Passwort Ihr API-Schlüssel ist, und legen Sie die Produktlinie für das Produkt fest. Drücken Sie Verbindung testen: Es führt einen echten Aufruf aus und teilt Ihnen mit, was die Plattform geantwortet hat. - HostBill – kopieren Sie es nach
includes/modules/Hosting/zinn/und verbinden Sie es auf dieselbe Weise. - WordPress – das Zinn® Reseller Toolkit: Domain-Suche, ein Anmelde-Link in das Hosting Ihrer Kunden und WooCommerce-Bereitstellung, wenn eine Bestellung bezahlt ist. Open Source unter <https://github.com/Zinn-Digital/zinn-reseller-toolkit> oder laden Sie es über Plugins in Ihrem Dashboard herunter.
6. Gehen Sie live
Überprüfen Sie diese Punkte, bevor Sie eine echte Bestellung entgegennehmen:
- Der Verbindungstest des Moduls ist erfolgreich oder Ihr erster
curl-Aufruf gibt eine Liste zurück. - Ihre Preisliste ist eingerichtet (Reselling → Ihre Preise).
- Ihr Payment-Gateway ist verbunden (Reselling → Payment-Gateways) – Ihre Kunden bezahlen Sie über Ihr eigenes Konto.
- Ihre Unternehmensdaten sind eingetragen (Reselling → Ihr Unternehmen), damit die Rechnungen Ihrer Kunden Ihre juristische Person und USt-IdNr. enthalten, nicht unsere.
- Sie haben eine echte Bestellung von Anfang bis Ende durchgespielt und beobachtet, wie die Website erscheint.
Wo alles Andere zu finden ist
Die vollständige API-Referenz – jeder Endpunkt, generiert aus unserer Spezifikation, mit den jeweils erforderlichen Berechtigungen – finden Sie unter <https://zinndigital.com/developers/api>.
Immer noch nicht weiter?
Der Support ist in jedem Tarif enthalten und antwortet in Ihrer eigenen Sprache.
Support kontaktieren → Alle Artikel →