Βάση γνώσεων
Πωλήστε φιλοξενία Zinn® μέσω του WHMCS
Εγκαταστήστε το δωρεάν module προμηθειών της Zinn Digital στο WHMCS: το API key και τα επτά δικαιώματα που χρειάζεται, πού πρέπει να τοποθετηθεί ο κατάλογος του module και γιατί έχει σημασία το όνομά του, τα πεδία του προϊόντος και τι κάνει στην πραγματικότητα κάθε κουμπί του WHMCS.
Το πρόσθετο Zinn Digital® μετατρέπει τα κουμπιά του WHMCS σε πραγματικές ενέργειες στην πλατφόρμα μας. Μια παραγγελία παρέχει τη φιλοξενία του πελάτη σας. Η αυτοματοποίηση ληγμένων τιμολογίων του WHMCS την αναστέλλει. Η σήμανση του τιμολογίου ως πληρωμένου την απελευθερώνει. Η ακύρωση προγραμματίζει τη διαγραφή. Και ο πελάτης σας λαμβάνει ένα κουμπί Σύνδεση στον πίνακα φιλοξενίας στην περιοχή πελατών του, το οποίο τον συνδέει απευθείας.
Είναι δωρεάν, διαθέτει άδεια GPL-2.0-or-later και δεν έχει προνομιακή διαδρομή προς την πλατφόρμα μας: κάθε κλήση που πραγματοποιεί είναι ένα τεκμηριωμένο τελικό σημείο (endpoint) που θα μπορούσατε να κάνετε και εσείς οι ίδιοι με το δικό σας κλειδί API.
Πριν ξεκινήσετε
Χρειάζεστε δύο πράγματα, και το δεύτερο συχνά μπερδεύει τον κόσμο.
- Ένας λογαριασμός μεταπωλητή Zinn® με ενεργό πρόγραμμα. Εγγραφείτε στη διεύθυνση zinndigital.com και ενεργοποιήστε τη μεταπώληση.
- Ένα πρόγραμμα μεταπωλητή με διαθέσιμο όριο τοποθεσιών. Οι τοποθεσίες που παραγγέλνουν οι πελάτες σας μετρούν εναντίον του δικού σας προγράμματος, οπότε χρειάζεστε ένα πρόγραμμα με διαθέσιμο χώρο.
⚠️ Η Δοκιμή Σύνδεσης δεν μπορεί να σας πει εάν μια παραγγελία θα πετύχει. Διαβάζει το πρόγραμμά σας και δεν παρέχει τίποτα, επομένως αναφέρει έναν υγιή
activeλογαριασμό που δεν μπορεί ακόμη να πουλήσει τίποτα. Εάν η πρώτη σας παραγγελία αποτύχει με το μήνυμα "This organization has no hosting plan, so it cannot host a site yet", αυτό ακριβώς έχει συμβεί — αγοράστε ή επεκτείνετε το πρόγραμμα μεταπωλητή σας και υποβάλετε ξανά την παραγγελία. Δεν υπάρχει κάποιο πρόβλημα με το πρόσθετο.
1. Δημιουργία του κλειδιού API
Στον πίνακα ελέγχου Zinn®, ανοίξτε τα Κλειδιά API (API keys) και δημιουργήστε ένα με ακριβώς αυτά τα έντεκα δικαιώματα:
| Δικαίωμα | Γιατί είναι απαραίτητο | | -------------------- | ----------------------------------------------------------- | | org.create | Άνοιγμα του λογαριασμού Zinn® του πελάτη σας στην πρώτη του παραγγελία. | | org.read | Ανάγνωση των λογαριασμών των πελατών σας. | | sites.create | Παροχή της τοποθεσίας. | | sites.view | Ανάγνωση μιας υπηρεσίας και της χρήσης της. | | sites.delete | Τερματισμός. | | reseller.view | Καταγραφή όσων έχετε πουλήσει και ανάγνωση δίσκου και εύρους ζώνης. | | reseller.provision | Αναστολή, απελευθέρωση, σύνδεση πελάτη, ορισμός προγράμματος και αλλαγή πακέτου. | | billing.view | Ανάγνωση του κόστους μιας αναβάθμισης πριν από την εκτέλεσή της. | | sites.manage | Εκκαθάριση λήψης μνήμης (cache) και λήψη αντιγράφου ασφαλείας από τα κουμπιά. | | sites.panel_access | Αλλαγή του κωδικού πρόσβασης του διαχειριστή WordPress. | | hosting.php.manage | Αλλαγή έκδοσης PHP κατά την αναβάθμιση ή υποβάθμιση. |
⛔ Μην παραχωρείτε το
reseller.manage. Ένα κλειδί που επικοellάται σε έναν πίνακα χρέωσης θα πρέπει να μπορεί να κρατά έναν πελάτη σε αναστολή για μη πληρωμή και να τον συνδέει. Δεν θα πρέπει να μπορεί να διαβάζει και να επανεγγράφει τα διαπιστευτήρια της δικής σας πύλης πληρωμών. Τοreseller.provisionυπάρχει ώστε να μην χρειάζεται να παραχωρήσετε το μεγαλύτερο δικαίωμα. ⛔ Τοorg.createδεν είναι προαιρετικό. Χωρίς αυτό, το πρόσθετο μπορεί να διαβάζει τους λογαριασμούς σας αλλά δεν μπορεί να ανοίξει έναν νέο, οπότε η Δοκιμή Σύνδεσης επιτυγχάνει και η πρώτη παραγγελία επιστρέφει403. ⛔⛔ Παραχωρήστε ολόκληρο τον πίνακα και σημειώστε ότι η Δοκιμή Σύνδεσης δεν μπορεί να σας πει αν δεν το έχετε κάνει. Διαβάζει το πρόγραμμα μεταπωλητή σας και δεν παρέχει τίποτα, οπότε εμφανίζεται πράσινη ακόμη και αν σε ένα κλειδί λείπει κάποιο από αυτά. Αυτό που παίρνετε αντ' αυτού είναι ένα403στη μοναδική λειτουργία που καλύπτει το δικαίωμα που λείπει, μήνες αργότερα, από έναν πελάτη.
2. Εγκατάσταση του πρόσθετου
- Κατεβάστε το πρόσθετο και αποσυμπιέστε το.
- Ανεβάστε τον κατάλογο
zinnστην εγκατάσταση WHMCS ώστε το αρχείο του πρόσθετου να τοποθετηθεί στοmodules/servers/zinn/zinn.php.
⛔ Ο κατάλογος πρέπει να ονομάζεται
zinn. Το WHMCS αντλεί τα ονόματα συναρτήσεων μιας μονάδας παροχής από το όνομα του καταλόγου της, επομένως η μετονομασία του σεzinn-whmcsήzinndigitalδημιουργεί ένα πρόσθετο που το WHMCS εμφανίζει στη λίστα, σας επιτρέπει να το επιλέξετε, αλλά δεν το καλεί ποτέ — χωρίς κανένα σφάλμα οπουδήποτε. Το αρχείο zip αποσυμπιέζεται ήδη με το σωστό όνομα· απλώς μην το μετονομάσετε.
3. Προσθήκη του διακομιστή
Στο WHMCS: Configuration → System Settings → Servers → Add New Server.
- Name: οτιδήποτε, π.χ.
Zinn Digital® - Hostname:
api.zinndigital.com - Type:
Zinn Digital® - Password: το κλειδί API σας από το βήμα 1
⛔ Το κλειδί μπαίνει στο πεδίο Password, το οποίο το WHMCS αποθηκεύει κρυπτογραφημένο. Μην το τοποθετήσετε σε μια επιλογή διαμόρφωσης προϊόντος — αυτές είναι απλό κείμενο στη βάση δεδομένων και ορατές σε κάθε διαχειριστή, και αυτό το διαπιστευτήριο μπορεί να δημιουργήσει και να καταστρέψει τη φιλοξενία των πελατών σας.
Πατήστε Test Connection (Δοκιμή Σύνδεσης). Πραγματοποιεί μια πραγματική κλήση και αναφέρει τι είπε η πλατφόρμα μας, αντί να ελέγχει απλώς αν τα πεδία είναι συμπληρωμένα.
4. Δημιουργία του προϊόντος
Configuration → System Settings → Products/Services, και στη συνέχεια ορίστε το Module Settings στον διακομιστή που μόλις προσθέσατε. Τα πεδία είναι:
| Πεδίο | Υποχρεωτικό | Τι είναι | | ---------------- | -------- | -------------------------------------------------------------------------- | | Product line | ναι | Η γραμμή Zinn® που πουλάτε — mainstream (managed WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail ή reseller. | | Stack | ναι | Τι κατασκευάζεται: wordpress (προεπιλογή), woocommerce, php, static, node, one_click, headless_cms, nextcloud ή owncloud. | | Application | όχι | Μόνο για τα stacks one_click και headless_cms — ποια εφαρμογή θα εγκατασταθεί. Η ονομασία της σε οποιοδήποτε άλλο stack απορρίπτεται, επειδή αυτό το stack αποφασίζει ήδη τι θα εγκατασταθεί. | | PHP version | όχι | π.χ. 8.3. Αφήστε το κενό για την προεπιλογή της γραμμής. Μια έκδοση που δεν προσφέρει η γραμμή απορρίπτεται με τη λίστα αυτών που προσφέρει. | | Plan code | ναι | Το πρόγραμμα Zinn® που πουλά το προϊόν. Η εντολή GET /v1/reseller/prices απαριθμεί τα δικά σας. Μια παραγγελία χωρίς αυτό απορρίπτεται — δείτε την προειδοποίηση παρακάτω. | | Billing interval | όχι | monthly (προεπιλογή) ή annual — το διάστημα κατά το οποίο χρεώνεται η δική σας χονδρική γραμμή για αυτόν τον πελάτη. Αυτό που χρεώνετε τον δικό σας πελάτη ορίζεται στο προϊόν WHMCS και δεν επηρεάζεται. |
⛔⛔ Ο κωδικός προγράμματος (Plan code) είναι υποχρεωτικός και μια παραγγελία χωρίς αυτόν απορρίπτεται επίτηδες. Μέχρι τις 2026-09-01 το πεδίο ήταν διακοσμητικό και τίποτα δεν το διάβαζε, οπότε το πρόσθετο παρήγγειλε φιλοξενία που δεν διέθετε κανένα απολύτως πρόγραμμα — και κάθε συνέπεια αυτού ήταν σιωπηλή. Η δήλωση χονδρικής σας βασίζεται στις ζωντανές συνδρομές των πελατών σας, οπότε δεν υπήρχε γραμμή για την υπηρεσία και δεν σας χρεώθηκε τίποτα για όσο διάστημα λειτουργούσε· ο πελάτης σας δεν κληρονόμησε καμία κατανομή, επομένως δεν εφαρμόστηκε καμία ποσόστωση δίσκου ή αρχείων στην τοποθεσία του· και η Αλλαγή Πακέτου δεν είχε τίποτα να αλλάξει, επομένως μια αναβάθμιση που πουλήσατε δεν μπορούσε να εκτελεστεί. Η τοποθεσία παρείχε υπηρεσίες και λειτουργούσε τέλεια καθ' όλη τη διάρκεια.
Το πρόσθετο τώρα απορρίπτει την παραγγελία, επειδή δεν υπάρχει ασφαλές πρόγραμμα για να μαντέψει: μια υπόθεση θα παρείχε φιλοξενία σε ένα πρόγραμμα που δεν επιλέξατε και μπορεί να μην έχετε τιμολογήσει, και — σε αντίθεση με μια απόρριψη, την οποία διαβάζετε αμέσως — θα γινόταν αντιληπτό μόνο όταν έφτανε μια δήλωση, αν γινόταν ποτέ.
Ορίστε το Auto Setup σε όποιο προτιμάτε — το πρόσθετο είναι ταυτοδύναμο (idempotent) ως προς το αναγνωριστικό υπηρεσίας WHMCS, επομένως μια επαναλαμβανόμενη παροχή επιστρέφει την ίδια τοποθεσία αντί να σας χρεώνει για δεύτερη φορά.
Τι κάνει κάθε ενέργεια του WHMCS
| Ενέργεια WHMCS | Τι συμβαίνει από την πλευρά μας | | --------------------------- | ---------------------------------------------------------------------------------------- | | Create | Δημιουργεί τον λογαριασμό Zinn® του πελάτη (ή επαναχρησιμοποιεί αυτόν που ήδη έχει) και παρέχει την τοποθεσία του. | | Suspend | Θέτει την τοποθεσία σε αναστολή λόγω μη πληρωμής. Το περιεχόμενο διατηρείται· τίποτα δεν διαγράφεται. | | Unsuspend | Απελευθερώνει την αναστολή σας. | | Terminate | Προγραμματίζει τη διαγραφή της τοποθεσίας, με περίοδο χάριτος. Η ημερομηνία εμφανίζεται στην περιοχή πελατών. | | Usage update | Ανανεώνει τον δίσκο και το εύρος ζώνης σε κάθε υπηρεσία, μία φορά την ημέρα. | | Log in to hosting panel | Ανοίγει έναν σύνδεση εφάπαξ χρήσης απευθείας στον πίνακα του πελάτη σας. | | Change Package | Αναβαθμίζει ή υποβαθμίζει την υπηρεσία. Μετακινεί το πακέτο και την έκδοση PHP εάν το νέο προϊόν ορίζει κάποια. | | Change Password | Ορίζει τον κωδικό πρόσβασης του διαχειριστή WordPress. Το πλαίσιο δεν εμφανίζεται σε stacks που δεν διαθέτουν τέτοιο λογαριασμό. | | Renew | Επιβεβαιώνει ότι η υπηρεσία εξακολουθεί να υπάρχει. Η φιλοξενία Zinn® είναι συνεχής, επομένως δεν υπάρχει απομακρυσμένη περίοδος προς παράταση. | | Sync Usage / Purge Cache / Take Backup | Κουμπιά στη σελίδα υπηρεσίας διαχειριστή. Ο πελάτης σας λαμβάνει Εκκαθάριση Λήψης Μνήμης (Purge Cache) και Λήψη Αντιγράφου Ασφαλείας (Take Backup) στην περιοχή πελατών του. | | Service tab | Κατάσταση, πρόγραμμα, δίσκος, εύρος ζώνης, τυχόν προγραμματισμένη διαγραφή και ποιος έθεσε σε αναστολή. | | Import | Η εντολή ListAccounts διαβάζει κάθε σελίδα, οπότε μια εισαγωγή δεν μπορεί να σταματήσει σιωπηρά στην πρώτη. |
Αναβαθμίσεις: ποιος χρεώνει ποιον
Ο πελάτης σας δεν τιμολογείται ποτέ από τη Zinn®, σε καμία παραγγελία ή αναβάθμιση. Τον χρεώνετε μέσω του WHMCS· εμείς χρεώνουμε εσάς, στη δήλωση χονδρικής σας. Επομένως, μια Αλλαγή Πακέτου μετακινεί τα δικαιώματα του πελάτη σας και τη γραμμή στην επόμενη δήλωσή σας, και δεν αγγίζει καμία κάρτα — το WHMCS έχει ήδη πάρει τα χρήματα του πελάτη σας και έχει υπολογίσει την αναλογική του χρέωση.
Δεύτερη υπηρεσία ενός πελάτη. Στο ίδιο πρόγραμμα, είναι μια άλλη τοποθεσία κάτω από το επιτρεπόμενο όριο τοποθεσιών αυτού του προγράμματος και δεν χορηγείται τίποτα επιπλέον. Σε διαφορετικό πρόγραμμα, απορρίπτεται: η αντικατάσταση του ζωντανού προγράμματος θα άφηνε μία από τις δύο υπηρεσίες απλήρωτη. Είτε πουλήστε και τις δύο στο ίδιο πρόγραμμα είτε ρυθμίστε τον πελάτη ως ξεχωριστή εγγραφή πελάτη στο WHMCS.
Το Change Password υπάρχει μόνο για το WordPress. Η φιλοξενία Zinn® δεν διαθέτει ενιαίο «κωδικό πρόσβασης υπηρεσίας» — ο πελάτης σας φτάνει στον πίνακα του με το κουμπί σύνδεσης — και μια τοποθεσία php ή static δεν διαθέτει λογαριασμό εφαρμογής για αλλαγή. Το WHMCS αποκρύπτει εντελώς το πλαίσιο αντί να εμφανίζει ένα που δεν μπορεί να λειτουργήσει.
Τρεις απαντήσεις που δεν πρέπει να συγχωνεύσετε σε δύο
- Το Unsuspend μπορεί να απαντήσει με απόρριψη. Αυτό σημαίνει ότι η τοποθεσία ανεστάλη από την ομάδα κατάχρησης (abuse team) μας και όχι από εσάς, και κανένας πίνακας χρέωσης δεν μπορεί να την απελευθερώσει. Το μήνυμα το αναφέρει ρητά· δείξτε το στον διαχειριστή σας αντί να προσπαθήσετε ξανά.
- Το Terminate προγραμματίζει μια διαγραφή, δεν την εκτελεί. Η ημερομηνία επιστρέφεται ως
pending_deletion_atκαι η περιοχή πελατών την εμφανίζει. Το να λέτε σε έναν πελάτη ότι τα δεδομένα του έχουν ήδη χαθεί ενώ δεν έχουν, είναι χειρότερο από το να μην του λέτε τίποτα. - Ο δίσκος και το εύρος ζώνης μπορεί να είναι άγνωστα, και το άγνωστο δεν είναι μηδέν. Όταν δεν μπορέσαμε να λάβουμε μέτρηση, το πρόσθετο αφήνει την τιμή ως έχει αντί να γράψει
0— διαφορετικά το WHMCS θα έδειχνε στον πελάτη σας μια καθησυχαστική κενή γραμμή χρήσης για μια τοποθεσία από την οποία δεν έχουμε μέτρηση.
Αντιμετώπιση προβλημάτων
Η Δοκιμή Σύνδεσης περνάει και η πρώτη παραγγελία αποτυγχάνει με σφάλμα δικαιωμάτων. Στο κλειδί API λείπει το δικαίωμα org.create. Το πρόσθετο πρέπει να ανοίξει τον λογαριασμό του πελάτη προτού μπορέσει να δημιουργήσει την τοποθεσία του.
Μια παραγγελία αποτυγχάνει αναφέροντας ότι ο οργανισμός δεν έχει πρόγραμμα φιλοξενίας. Το πρόγραμμα μεταπωλητή σας δεν έχει άλλο διαθέσιμο όριο τοποθεσιών ή δεν διαθέτετε ακόμη κάποιο. Δείτε την ενότητα Πριν ξεκινήσετε παραπάνω.
Μια παραγγελία αποτυγχάνει αναφέροντας ένα stack. Το πεδίο Stack στο προϊόν είναι κενό ή ονομάζει κάτι που δεν κατασκευάζουμε. Ορίστε το σε wordpress εκτός εάν πουλάτε κάτι άλλο.
Οι ακυρώσεις αποτυγχάνουν. Βεβαιωθείτε ότι χρησιμοποιείτε την έκδοση πρόσθετου 1.0.0 ή νεότερη. Οι παλαιότερες εκδόσεις δεν έστελναν επιβεβαίωση διαγραφής και κάθε τερματισμός απορριπτόταν, γεγονός που άφηνε την υπηρεσία σε λειτουργία και χρέωση.
Μια απόρριψη που αναφέρει ένα πεδίο. Τα σφάλματα επικύρωσής μας αναφέρουν το πεδίο και τον λόγο σε παρενθέσεις μετά το μήνυμα, π.χ. (php_version: 7.2 is not offered on this product line). Αυτό είναι το μισό στοιχείο επί του οποίου μπορείτε να ενεργήσετε — η πρόταση μπροστά του είναι σκόπιμα γενική.
Ε επαληθεύστε τη λήψη σας
Κάθε αρχειοθήκη εξυπηρετείται μέσω TLS από το δικό μας όνομα κεντρικού υπολογιστή και ποτέ δεν ανακατευθύνεται σε φιλοξενία τρίτου μέρους. Το άθροισμα ελέγχου SHA-256 εκτυπώνεται δίπλα στον σύνδεσμο λήψης στη σελίδα λήψεων. Συγκρίνετε το μετά τη λήψη:
- macOS ή Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip - Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
Δεν χρησιμοποιείτε το WHMCS;
Υπάρχει ένα πρόσθετο HostBill και ένα πρόγραμμα-πελάτης PHP ενός αρχείου για οτιδήποτε άλλο, και τα δύο δωρεάν και στην ίδια σελίδα λήψεων. Κάθε τελικό σημείο (endpoint) που χρησιμοποιούν τα πρόσθετα βρίσκεται στην αναφορά API.
Εξακολουθείτε να έχετε απορίες;
Η υποστήριξη περιλαμβάνεται σε κάθε πρόγραμμα και απαντάμε στη γλώσσα σας.
Επικοινωνία με την υποστήριξη → Όλα τα άρθρα →