तपाईं हाम्रो होस्टिङ पुनर्विक्री गर्नुहुन्छ। तपाईंका ग्राहकहरू तपाईंका आफ्नै हुन्: तपाईंका मूल्यहरू, तपाईंका इनभ्वाइसहरू, तपाईंको भुक्तानी प्रदायक। तपाईंले पहिलेदेखि नै चलाउनुभएको जुनसुकै माध्यमबाट पनि हाम्रो प्लेटफर्मलाई यसरी सञ्चालन गर्न सक्नुहुन्छ — बिलिङ प्यानल, तपाईंको आफ्नै WordPress साइट, वा कुनै स्क्रिप्ट।
तपाईंका ग्राहकहरूले वास्तवमा के देख्छन्
प्रक्रिया अघि: तपाईंका ग्राहकहरूले हामीलाई कहिल्यै देख्नुपर्दैन। तीनवटा माध्यमहरू छन्, र तपाईं कुन प्रयोग गर्ने भन्ने कुरा छनौट गर्न सक्नुहुन्छ।
| माध्यम | यो कसको हो |
|---|
| तपाईंको आफ्नै होस्टनाममा होस्टिङ प्यानल | Reselling → Your brand अन्तर्गत प्यानल होस्टनाम सेट गर्नुहोस् र तपाईंका ग्राहकहरूले तपाईंको लोगो र रङहरू सहित panel.yourcompany.com मा साइन इन गर्छन्। उही प्यानल, तपाईंको ठेगाना। |
| तपाईंको आफ्नै वेबसाइट | WordPress प्लगइनले तपाईंको साइटमा डोमेन खोजी र एक-क्लिक साइन-इन लिङ्क राख्छ, र तपाईंको आफ्नै WooCommerce चेकआउट मार्फत अर्डर लिन्छ। |
| तपाईंको बिलिङ प्यानल | WHMCS वा HostBill मुख्य प्रवेशद्वारको रूपमा रहन्छ; मोड्युलले यसको पछाडि प्रोभिजन गर्छ र ग्राहक-क्षेत्र बटनले तिनीहरूलाई सिधै तिनीहरूको होस्टिङमा साइन इन गराउँछ। |
⛔ तपाईंले जुनसुकै रोज्नुभए पनि, तपाईं तपाईंका ग्राहकहरूका लागि रेकर्डको व्यापारी (merchant of record) हुनुहुन्छ: तपाईंका मूल्यहरू, तपाईंका इनभ्वाइसहरू, तपाईंको भ्याट (VAT) नम्बर, तपाईंको भुक्तानी प्रदायक। हामी थोक दरमा, महिनामा एक पटक, तपाईंलाई बिल पठाउँछौं।
एकपटक तपाईंले प्यानल होस्टनाम सेट गरिसकेपछि, यसलाई WordPress प्लगइनको Panel address फिल्डमा मात्र राख्नुहोस् — यो API ले सिर्जना गर्ने साइन-इन लिङ्कहरूले स्वचालित रूपमा यसलाई पछ्याउँछन्।
भित्र छिर्ने चार तरिकाहरू
चारवटा तरिकाहरू छन्, र तिनीहरू सबैले भित्री रूपमा एउटै काम गर्छन्:
| को लागि |
|---|
| WHMCS मोड्युल | एक WHMCS पसल |
| HostBill मोड्युल | एक HostBill पसल |
| WordPress प्लगइन | तपाईंको आफ्नै WordPress वा WooCommerce साइटबाट बिक्री गर्न |
| API | अन्य जेसुकै — Blesta, एक आन्तरिक प्रणाली, वा एक cron स्क्रिप्ट |
१. API कुञ्जी (key) प्राप्त गर्नुहोस्
तपाईंको ड्यासबोर्डमा, API keys मा जानुहोस् र एउटा सिर्जना गर्नुहोस्। यसलाई आवश्यक पर्ने अनुमतिहरू मात्र दिनुहोस्:
| अनुमति | किन |
|---|
org.read | तपाईंका ग्राहक खाताहरू पढ्न |
sites.create | साइट प्रोभिजन गर्न |
sites.view | सेवाको विवरण हेर्न |
sites.delete | समाप्त (terminate) गर्न |
reseller.view | तपाईंका सेवाहरू सूचीकृत गर्न र प्रयोगको विवरण हेर्न |
reseller.provision | निलम्बन गर्न, फुकुवा गर्न र ग्राहकलाई साइन इन गराउन |
⛔ कुनै पनि इन्टिग्रेसनलाई reseller.manage नदिनुहोस्। त्यो अनुमतिले तपाईंको मूल्य सूची र तपाईंको आफ्नै भुक्तानी-गेटवे प्रमाणहरू सम्पादन गर्छ। reseller.provision ठ्याक्कै यसै कारणले उपलब्ध छ ताकि तपाईंले बिलिङ प्यानल वा वेबसाइटमा टाँस्ने कुञ्जीलाई यसको आवश्यकता नपरोस्।
कुञ्जी एक पटक मात्र देखाइन्छ। यसलाई तपाईंले आफ्ना अन्य प्रमाणहरू भण्डारण गर्ने ठाउँमा सुरक्षित राख्नुहोस् — तपाईंको वेब सर्भरले सार्वजनिक रूपमा उपलब्ध गराउने फाइलमा कहिल्यै नराख्नुहोस्।
२. तपाईंको पहिलो कल गर्नुहोस्
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
यसले तपाईंले प्रोभिजन गर्नुभएका प्रत्येक सेवा फर्काउँछ, प्रति साइट एक पङ्क्ति, यो कुन ग्राहकको हो, यसको स्थिति, र तपाईंले यसको लागि कति शुल्क लिनुहुन्छ भन्ने विवरण सहित। नयाँ खातामा यो खाली सूची हुन्छ — जुन सही जवाफ हो, कुनै त्रुटि होइन।
३. छ वटा कलहरूमा सम्पूर्ण इन्टिग्रेसन
कहिले कल
अर्डर भुक्तान हुँदा POST /v1/orgs प्रति ग्राहक (CUSTOMER) एक पटक
POST /v1/sites प्रति सेवा (SERVICE) एक पटक
तिनीहरूले भुक्तान नगर्दा POST /v1/reseller/services/{siteId}/suspend
तिनीहरूले भुक्तान गर्दा POST /v1/reseller/services/{siteId}/unsuspend
तिनीहरूले रद्द गर्दा DELETE /v1/sites/{siteId}
"होस्टिङमा लगइन गर्नुहोस्" POST /v1/reseller/services/{siteId}/sso
प्रोभिजनिङ दुईवटा कलहरू हुन्, र कुञ्जीहरू महत्त्वपूर्ण हुन्छन्:
# १. ग्राहकको खाता — तपाईंको ग्राहक आईडी (customer 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"}'
# २. तिनीहरूको साइट — तपाईंको सेवा आईडी (service 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"}'
गलत हुँदा पैसा खर्च गराउने दुई नियमहरू
१. खातालाई तपाईंको CUSTOMER मा र साइटलाई तपाईंको SERVICE मा आधारित (key) गर्नुहोस्। ग्राहकको दोस्रो अर्डर उनीहरूसँग पहिले नै भएको खातामा जानुपर्छ। दुवैलाई सेवामा आधारित गर्नुभयो भने एकै ग्राहकका तीनवटा असम्बन्धित खाताहरू र तीनवटा छुट्टाछुट्टै प्यानलहरू बन्नेछन्। २. प्रत्येक POST मा वस्तुको लागि तपाईंको आफ्नै आईडीबाट निर्मित Idempotency-Key पठाउनुहोस्। प्रत्येक बिलिङ प्रणालीले पुन: प्रयास गर्छ — गेटवे कलब्याक दुई पटक आउँछ, व्यवस्थापकले असफल प्रोभिजन पुन: चलाउँछ, ग्राहकले दुई पटक क्लिक गर्छ। कुञ्जी बिना दोस्रो प्रयासले दोस्रो साइट सिर्जना गर्छ र तपाईंलाई यसको बिल लगाइन्छ।
तीनवटा जवाफहरू जसलाई तपाईंले दुईमा घटाउनु हुँदैन
unsuspend ले 409 जवाफ दिन सक्छ। यसको अर्थ हाम्रो दुरुपयोग रोकथाम टोली (abuse team) ले साइट रोकिरहेको छ, तपाईंले होइन। सन्देश देखाउनुहोस्; पुन: प्रयास नगर्नुहोस्।
- **समाप्त (terminating) गर्नाले मेटाउने तालिका बनाउँछ, यसले तुरुन्त मेटाउने काम गर्दैन।** मिति
pending_deletion_at को रूपमा फिर्ता आउँछ। ग्राहकलाई उनीहरूको डाटा मेटिइसकेको छैन भन्नुको सट्टा मेटिइसक्यो भन्नु केही नभन्नु भन्दा खराब हो।
disk_used_bytes मान null हुन सक्छ, र null भनेको शून्य होइन। यसको अर्थ हामी मापन गर्न असमर्थ भयौं भन्ने हो, केही पनि प्रयोग भएको थिएन भन्ने होइन। यसलाई छोडिदिनुहोस् — तपाईंको आफ्नै रेकर्डहरूमा 0 नलेख्नुहोस्, अन्यथा तपाईंले कुनै डेटा नभएको साइटको लागि ग्राहकलाई हरियो प्रयोग पट्टी देखाउनुहुनेछ।
४. ग्राहकलाई साइन इन गराउनुहोस्
POST /v1/reseller/services/{siteId}/sso ले एक पटक मात्र प्रयोग हुने URL फर्काउँछ जसले तपाईंको ग्राहकलाई पहिले नै साइन इन भइसकेको अवस्थामा सिधै तिनीहरूको आफ्नै खातामा पुर्याउँछ।
⛔ तिनीहरूले क्लिक गर्दा मात्र यसलाई सिर्जना गर्नुहोस्, तपाईंले पृष्ठ रेन्डर गर्दा कहिल्यै नगर्नुहोस्। यो लिङ्क एक पटक मात्र प्रयोग गर्न सकिने खालको हुन्छ र केही मिनेटमा समाप्त हुन्छ, त्यसैले पृष्ठमा लेखिएको लिङ्क पहिलो पटक पृष्ठ हेर्दा नै समाप्त हुन्छ र तपाईं र ब्राउजर बीचको प्रत्येक क्यासमा रहिरहन्छ।
५. यसको सट्टा मोड्युल स्थापना गर्नुहोस्
- WHMCS — मोड्युललाई
modules/servers/zinn/ मा प्रतिलिपि गर्नुहोस्, यस्तो सर्भर थप्नुहोस् जसको Password तपाईंको API कुञ्जी हो, र उत्पादनमा प्रडक्ट लाइन सेट गर्नुहोस्। Test Connection थिच्नुहोस्: यसले वास्तविक कल गर्छ र तपाईंलाई प्लेटफर्मले के भन्यो सो बताउँछ।
- HostBill —
includes/modules/Hosting/zinn/ मा प्रतिलिपि गर्नुहोस् र यसलाई त्यसरी नै जडान गर्नुहोस्।
- WordPress — Zinn® Reseller Toolkit: डोमेन खोजी, तपाईंका ग्राहकहरूको होस्टिङमा साइन-इन लिङ्क, र अर्डर भुक्तान हुँदा WooCommerce प्रोभिजनिङ। <https://github.com/Zinn-Digital/zinn-reseller-toolkit> मा खुला स्रोत (open source), वा तपाईंको ड्यासबोर्डको Plugins बाट डाउनलोड गर्नुहोस्।
६. प्रत्यक्ष (live) सञ्चालन गर्नुहोस्
तपाईंले वास्तविक अर्डर लिनु अघि यी कुराहरू जाँच गर्नुहोस्:
- मोड्युलमा जडान परीक्षण सफल हुन्छ, वा तपाईंको पहिलो
curl ले सूची फर्काउँछ।
- तपाईंको मूल्य सूची सेट गरिएको छ (Reselling → Your prices)।
- तपाईंको भुक्तानी गेटवे जडान गरिएको छ (Reselling → Payment gateways) — तपाईंका ग्राहकहरूले तपाईंको आफ्नै खाता मार्फत तपाईंलाई भुक्तानी गर्छन्।
- तपाईंको कम्पनीको विवरण प्रविष्ट गरिएको छ (Reselling → Your company) ताकि तपाईंका ग्राहकका इनभ्वाइसहरूमा तपाईंको कानुनी निकाय र भ्याट (VAT) नम्बर समावेश होस्, हाम्रो होइन।
- तपाईंले सुरुदेखि अन्त्यसम्म एउटा वास्तविक अर्डर गर्नुभएको छ र साइट देखा परेको हेर्नुभएको छ।
अन्य सबै कहाँ छन्
पूर्ण API सन्दर्भ — प्रत्येक एन्डपोइन्ट, हाम्रो विशिष्टताबाट उत्पन्न गरिएको, प्रत्येकलाई चाहिने अनुमति सहित — <https://zinndigital.com/developers/api> मा उपलब्ध छ।