Zinn Digital® मॉड्यूल WHMCS के अपने बटनों को हमारे प्लेटफ़ॉर्म पर वास्तविक कार्रवाइयों में बदल देता है। एक ऑर्डर आपके क्लाइंट की होस्टिंग को प्रोविज़न करता है। WHMCS का ओवरड्यू-इनवॉइस ऑटोमेशन इसे निलंबित (सस्पेंड) कर देता है। इनवॉइस को पेड के रूप में चिह्नित करने पर यह बहाल (रिलीज़) हो जाता है। रद्द करने पर इसके विलोपन (डिलीशन) का शेड्यूल तय हो जाता है। और आपके क्लाइंट को उनके क्लाइंट क्षेत्र में Log in to hosting panel का एक बटन मिलता है जो उन्हें सीधे साइन इन करा देता है।
यह मुफ़्त है, GPL-2.0-or-later के तहत लाइसेंस प्राप्त है, और हमारे प्लेटफ़ॉर्म पर इसका कोई विशेषाधिकार प्राप्त (प्रिविलेज्ड) पाथ नहीं है: इसके द्वारा किया जाने वाला प्रत्येक कॉल एक दस्तावेजीकृत एंडपॉइंट है जिसे आप अपनी स्वयं की API कुंजी से भी कर सकते हैं।
शुरू करने से पहले
आपको दो चीज़ों की आवश्यकता है, और दूसरी वाली पर लोग अक्सर चूक जाते हैं।
- सक्रिय प्रोग्राम वाला एक Zinn® पुनर्विक्रेता (रीसेलर) खाता। zinndigital.com पर साइन अप करें और रीसेलिंग चालू करें।
- साइट भत्ते (साइट अलाउंस) वाला रीसेलर प्लान। आपके क्लाइंट जिन साइटों का ऑर्डर देते हैं, वे आपके प्लान में गिनी जाती हैं, इसलिए आपको एक ऐसे प्लान की आवश्यकता है जिसमें गुंजाइश हो।
⚠️ Test Connection आपको यह नहीं बता सकता कि कोई ऑर्डर सफल होगा या नहीं। यह आपके प्रोग्राम को पढ़ता है और कुछ भी प्रोविज़न नहीं करता है, इसलिए यह एक स्वस्थ active खाते की रिपोर्ट करता है जो अभी कुछ भी नहीं बेच सकता है। यदि आपका पहला ऑर्डर "This organization has no hosting plan, so it cannot host a site yet" के साथ विफल हो जाता है, तो यही हुआ है — अपना रीसेलर प्लान खरीदें या बढ़ाएं और ऑर्डर फिर से दें। मॉड्यूल में कोई खराबी नहीं है।
1. API कुंजी बनाएं
अपने Zinn® डैशबोर्ड में, API keys खोलें और बिल्कुल इन ग्यारह अनुमतियों के साथ एक कुंजी बनाएं:
| अनुमति | इसकी आवश्यकता क्यों है |
|---|
org.create | अपने क्लाइंट के पहले ऑर्डर पर उनका Zinn® खाता खोलें। |
org.read | अपने क्लाइंट खाते पढ़ें। |
sites.create | साइट प्रोविज़न करें। |
sites.view | सेवा और उसके उपयोग को पढ़ें। |
sites.delete | समाप्त (टर्मिनेट) करें। |
reseller.view | आपने जो बेचा है उसे सूचीबद्ध करें, और डिस्क तथा बैंडविड्थ पढ़ें। |
reseller.provision | सस्पेंड करें, रिलीज़ करें, क्लाइंट को साइन इन कराएं, उनका प्लान सेट करें और उनका पैकेज बदलें। |
billing.view | अपग्रेड करने से पहले यह पढ़ें कि इसकी लागत क्या होगी। |
sites.manage | बटनों से कैश साफ़ करें और बैकअप लें। |
sites.panel_access | WordPress व्यवस्थापक (एडमिनिस्ट्रेटर) का पासवर्ड बदलें। |
hosting.php.manage | अपग्रेड या डाउनग्रेड पर PHP संस्करण बदलें। |
⛔ reseller.manage अनुमति न दें। बिलिंग पैनल में चिपकाई गई (पेस्ट की गई) कुंजी को भुगतान न करने पर क्लाइंट को होल्ड करने और उन्हें साइन इन कराने में सक्षम होना चाहिए। इसे आपके अपने भुगतान-गेटवे क्रेडेंशियल्स को पढ़ने और फिर से लिखने में सक्षम नहीं होना चाहिए। reseller.provision इसलिए उपलब्ध है ताकि आपको बड़ी अनुमति न देनी पड़े। ⛔ org.create वैकल्पिक नहीं है। इसके बिना मॉड्यूल आपके खातों को पढ़ सकता है लेकिन खाता खोल नहीं सकता, इसलिए Test Connection पास हो जाता है और पहला ऑर्डर 403 उत्तर देता है। ⛔⛔ पूरी तालिका की अनुमति दें, और ध्यान दें कि यदि आपने ऐसा नहीं किया है तो Test Connection आपको नहीं बता सकता। यह आपके रीसेलर प्रोग्राम को पढ़ता है और कुछ भी प्रोविज़न नहीं करता है, इसलिए इनमें से किसी भी अनुमति के न होने पर भी यह हरा (सफल) दिखाई देता है। इसके बजाय आपको किसी ग्राहक से, महीनों बाद, उस एक ऑपरेशन पर 403 मिलता है जिसे वह छूटी हुई अनुमति कवर करती है।
2. मॉड्यूल इंस्टॉल करें
- मॉड्यूल डाउनलोड करें और इसे अनज़िप करें।
zinn डायरेक्टरी को अपने WHMCS इंस्टॉलेशन में अपलोड करें ताकि मॉड्यूल फ़ाइल modules/servers/zinn/zinn.php पर पहुंचे।
⛔ डायरेक्टरी का नाम zinn ही होना चाहिए। WHMCS किसी प्रोविज़निंग मॉड्यूल के फ़ंक्शन नाम उसके डायरेक्टरी नाम से प्राप्त करता है, इसलिए इसका नाम बदलकर zinn-whmcs या zinndigital करने पर ऐसा मॉड्यूल बनता है जिसे WHMCS सूचीबद्ध करता है, आपको चुनने देता है, और फिर कभी कॉल नहीं करता — बिना किसी एरर के। ज़िप पहले से ही सही नाम से अनपैक होता है; बस इसका नाम न बदलें।
3. सर्वर जोड़ें
WHMCS में: Configuration → System Settings → Servers → Add New Server।
- Name: कुछ भी, उदा.
Zinn Digital®
- Hostname:
api.zinndigital.com
- Type:
Zinn Digital®
- Password: चरण 1 से आपकी API कुंजी
⛔ कुंजी Password फ़ील्ड में जाती है, जिसे WHMCS एन्क्रिप्ट करके संग्रहीत करता है। इसे किसी उत्पाद कॉन्फ़िगरेशन विकल्प में न डालें — वे डेटाबेस में सादा पाठ (प्लेन टेक्स्ट) होते हैं और प्रत्येक एडमिन को दिखाई देते हैं, और यह क्रेडेंशियल आपके क्लाइंट्स की होस्टिंग बना और नष्ट कर सकता है।
Test Connection दबाएं। यह केवल यह जांचने के बजाय कि फ़ील्ड भरे हुए हैं या नहीं, एक वास्तविक कॉल करता है और हमारे प्लेटफ़ॉर्म से मिले उत्तर की रिपोर्ट करता है।
4. उत्पाद (प्रोडक्ट) बनाएं
Configuration → System Settings → Products/Services, फिर Module Settings को उस सर्वर पर सेट करें जिसे आपने अभी जोड़ा है। फ़ील्ड इस प्रकार हैं:
| फ़ील्ड | आवश्यक | यह क्या है |
|---|
| Product line | हाँ | वह Zinn® लाइन जिसे आप बेच रहे हैं — mainstream (प्रबंधित 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 | नहीं | केवल one_click और headless_cms स्टैक के लिए — कौन सा एप्लिकेशन इंस्टॉल करना है। किसी अन्य स्टैक पर इसका नाम देना अस्वीकार कर दिया जाता है, क्योंकि वह स्टैक पहले से ही तय करता है कि क्या इंस्टॉल होगा। |
| PHP version | नहीं | उदा. 8.3। लाइन के डिफ़ॉल्ट के लिए इसे खाली छोड़ दें। जो संस्करण लाइन प्रदान नहीं करती है, उसे उन संस्करणों की सूची के साथ अस्वीकार कर दिया जाता है जो वह प्रदान करती है। |
| Plan code | हाँ | वह Zinn® प्लान जो यह उत्पाद बेचता है। GET /v1/reseller/prices आपके प्लान सूचीबद्ध करता है। इसके बिना ऑर्डर अस्वीकार कर दिया जाता है — नीचे दी गई चेतावनी देखें। |
| Billing interval | नहीं | monthly (डिफ़ॉल्ट) या annual — वह अंतराल जिस पर इस क्लाइंट के लिए आपकी अपनी थोक (होलसेल) लाइन बनती है। आप अपने क्लाइंट से क्या शुल्क लेते हैं यह WHMCS उत्पाद पर सेट होता है और अप्रभावित रहता है। |
⛔⛔ Plan code आवश्यक है, और इसके बिना कोई भी ऑर्डर जानबूझकर अस्वीकार कर दिया जाता है। 2026-09-01 तक यह फ़ील्ड केवल सजावटी था और इसे कुछ भी नहीं पढ़ता था, इसलिए मॉड्यूल ऐसी होस्टिंग का ऑर्डर देता था जिसमें कोई प्लान ही नहीं था — और इसका हर परिणाम मूक (साइलेंट) था। आपका होलसेल विवरण आपके क्लाइंट्स की लाइव सदस्यताओं से बनता है, इसलिए उस सेवा के लिए कोई लाइन नहीं थी और जब तक वह चलती रही आपको कोई इनवॉइस नहीं भेजा गया; आपके क्लाइंट को कोई कोटा नहीं मिला, इसलिए उनकी साइट पर कोई डिस्क या फ़ाइल कोटा लागू नहीं हुआ; और Change Package के पास बदलने के लिए कुछ नहीं था, इसलिए आपके द्वारा बेचे गए अपग्रेड को निष्पादित नहीं किया जा सका। साइट इस दौरान पूरी तरह से प्रोविज़न रही और काम करती रही।
मॉड्यूल अब इसके बजाय ऑर्डर को अस्वीकार कर देता है, क्योंकि इसके पास अनुमान लगाने के लिए कोई सुरक्षित प्लान नहीं है: अनुमान लगाने से ऐसी होस्टिंग प्रोविज़न हो जाएगी जो आपके द्वारा नहीं चुने गए प्लान पर होगी और हो सकता है कि आपने उसकी कीमत भी तय न की हो, और — अस्वीकृति के विपरीत, जिसे आप तुरंत पढ़ लेते हैं — यह केवल तभी सामने आएगा जब कोई विवरण आएगा, यदि कभी आए तो।
Auto Setup को अपनी पसंद के अनुसार सेट करें — मॉड्यूल WHMCS सेवा आईडी पर इडेम्पोटेंट है, इसलिए दोबारा प्रयास करने पर प्रोविज़न आपको दूसरी सेवा का बिल देने के बजाय वही साइट लौटाता है।
WHMCS की प्रत्येक कार्रवाई क्या करती है
| WHMCS कार्रवाई | हमारे पक्ष में क्या होता है |
|---|
| Create | क्लाइंट का Zinn® खाता बनाता है (या उनके पास पहले से मौजूद खाते का पुन: उपयोग करता है) और उनकी साइट को प्रोविज़न करता है। |
| Suspend | भुगतान न करने के कारण साइट को रोक (होल्ड) पर रखता है। सामग्री सुरक्षित रखी जाती है; कुछ भी हटाया नहीं जाता है। |
| Unsuspend | आपकी रोक हटाता है। |
| Terminate | रियायती अवधि (ग्रेस पीरियड) के साथ, साइट को हटाए जाने का शेड्यूल तय करता है। तारीख क्लाइंट क्षेत्र में दिखाई देती है। |
| Usage update | दिन में एक बार, प्रत्येक सेवा पर डिस्क और बैंडविड्थ को रीफ़्रेश करता है। |
| Log in to hosting panel | सीधे आपके क्लाइंट के पैनल में एक बार उपयोग होने वाला साइन-इन लिंक खोलता है। |
| Change Package | सेवा को अपग्रेड या डाउनग्रेड करता है। पैकेज बदलता है, और यदि नया उत्पाद किसी PHP संस्करण का नाम देता है तो उसे भी बदलता है। |
| Change Password | WordPress व्यवस्थापक का पासवर्ड सेट करता है। यह बॉक्स उन स्टैक पर दिखाई नहीं देता है जिनमें ऐसा कोई खाता नहीं होता है। |
| Renew | पुष्टि करता है कि सेवा अभी भी मौजूद है। Zinn® होस्टिंग निरंतर है, इसलिए बढ़ाने के लिए कोई दूरस्थ अवधि (रिमोट टर्म) नहीं है। |
| Sync Usage / Purge Cache / Take Backup | एडमिन सेवा पृष्ठ पर बटन। आपके क्लाइंट को उनके क्लाइंट क्षेत्र में Purge Cache और Take Backup मिलते हैं। |
| Service tab | स्थिति, प्लान, डिस्क, बैंडविड्थ, कोई भी निर्धारित विलोपन, और किसने सस्पेंशन लगाया था। |
| Import | ListAccounts प्रत्येक पृष्ठ को पढ़ता है, इसलिए कोई आयात (इंपोर्ट) चुपचाप पहले पृष्ठ पर ही नहीं रुक सकता। |
अपग्रेड: कौन किससे शुल्क लेता है
आपके क्लाइंट को किसी ऑर्डर या अपग्रेड पर Zinn® द्वारा कभी भी इनवॉइस नहीं भेजा जाता है। आप उन्हें WHMCS के माध्यम से बिल भेजते हैं; हम आपको आपके होलसेल विवरण पर बिल भेजते हैं। इसलिए Change Package आपके क्लाइंट के अधिकारों और आपके अगले विवरण की लाइन को बदलता है, और किसी भी कार्ड को नहीं छूता है — WHMCS ने आपके क्लाइंट से पैसे पहले ही ले लिए हैं और अपने स्वयं के अनुपात (प्रोरेशन) की गणना कर ली है।
क्लाइंट की दूसरी सेवा। उसी प्लान पर यह उस प्लान के अपने साइट भत्ते के तहत एक अन्य साइट है, और इसके अलावा कुछ भी नहीं दिया जाता है। एक अलग प्लान पर इसे अस्वीकार कर दिया जाता है: लाइव प्लान को बदलने से दो सेवाओं में से एक बिना बिल के रह जाएगी। या तो दोनों को एक ही प्लान पर बेचें, या क्लाइंट को WHMCS में एक अलग क्लाइंट रिकॉर्ड के रूप में सेट करें।
Change Password केवल WordPress के लिए मौजूद है। Zinn® होस्टिंग में कोई एक "सर्विस पासवर्ड" नहीं होता है — आपका क्लाइंट साइन-इन बटन से अपने पैनल तक पहुंचता है — और php या static साइट में बदलने के लिए कोई एप्लिकेशन खाता नहीं होता है। WHMCS काम न कर सकने वाले बॉक्स को दिखाने के बजाय उसे पूरी तरह से छुपा देता है।
तीन उत्तर जिन्हें आपको दो में नहीं समेटना चाहिए
- Unsuspend अस्वीकृति के साथ उत्तर दे सकता है। इसका मतलब है कि साइट को हमारी दुरुपयोग (अब्यूज) टीम द्वारा निलंबित किया गया था, आपके द्वारा नहीं, और कोई भी बिलिंग पैनल इसे बहाल नहीं कर सकता है। संदेश में ऐसा कहा गया है; पुनः प्रयास करने के बजाय इसे अपने एडमिन को दिखाएं।
- Terminate केवल विलोपन का शेड्यूल तय करता है, यह तुरंत हटाता नहीं है। तारीख
pending_deletion_at के रूप में वापस आती है और क्लाइंट क्षेत्र इसे दिखाता है। ग्राहक को यह बताना कि उनका डेटा पहले ही चला गया है जबकि ऐसा नहीं हुआ है, उन्हें कुछ न बताने से भी बदतर है।
- डिस्क और बैंडविड्थ अज्ञात हो सकते हैं, और अज्ञात का अर्थ शून्य नहीं होता है। जब हम रीडिंग नहीं ले सके तो मॉड्यूल
0 लिखने के बजाय आंकड़े को वैसे ही छोड़ देता है — अन्यथा WHMCS आपके ग्राहक को उस साइट के लिए एक आश्वस्त करने वाला खाली उपयोग बार दिखाएगा जिसकी हमारे पास कोई रीडिंग नहीं है।
समस्या निवारण
Test Connection पास हो जाता है और पहला ऑर्डर अनुमति एरर के साथ विफल हो जाता है। API कुंजी में org.create मौजूद नहीं है। क्लाइंट की साइट बनाने से पहले मॉड्यूल को उनका खाता खोलना होता है।
यह कहते हुए एक ऑर्डर विफल हो जाता है कि संगठन के पास कोई होस्टिंग प्लान नहीं है। आपके रीसेलर प्लान में कोई साइट भत्ता नहीं बचा है, या आपके पास अभी तक कोई प्लान नहीं है। ऊपर शुरू करने से पहले देखें।
किसी स्टैक का उल्लेख करते हुए एक ऑर्डर विफल हो जाता है। उत्पाद पर 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 क्लाइंट है, दोनों मुफ़्त हैं और दोनों एक ही डाउनलोड पृष्ठ पर उपलब्ध हैं। मॉड्यूल द्वारा उपयोग किया जाने वाला प्रत्येक एंडपॉइंट API संदर्भ में है।