নলেজ বেস
আপনার নিজস্ব সিস্টেম থেকে Zinn® হোস্টিং বিক্রি করা
আপনার নিজস্ব বিলিং প্যানেল, WordPress সাইট বা স্ক্রিপ্ট থেকে Zinn হোস্টিং পরিচালনা করুন: একটি API কী পান, আপনার প্রথম কলটি করুন এবং পুরো ইন্টিগ্রেশনটি যে ছয়টি কলের সমন্বয়ে গঠিত তা সম্পন্ন করুন।
আপনি আমাদের হোস্টিং রিসেল করেন। আপনার ক্লায়েন্টরা আপনারই: আপনার মূল্য, আপনার চালান, আপনার পেমেন্ট প্রদানকারী। আপনি ইতিমধ্যে যা চালাচ্ছেন তা থেকেই আপনি আমাদের প্ল্যাটফর্ম পরিচালনা করতে পারবেন — একটি বিলিং প্যানেল, আপনার নিজস্ব WordPress সাইট, অথবা একটি স্ক্রিপ্ট।
আপনার ক্লায়েন্টরা আসলে কী দেখতে পান
প্রক্রিয়াগুলো জানার আগে: আপনার ক্লায়েন্টদের কখনই আমাদের দেখতে হবে না। তিনটি মাধ্যম রয়েছে, এবং আপনি কোনটি ব্যবহার করবেন তা বেছে নিন।
| মাধ্যম | কার মালিকানাধীন | |---|---| | হোস্টিং প্যানেল, আপনার নিজস্ব হোস্টে | Reselling → Your brand-এর অধীনে একটি প্যানেল হোস্টের নাম সেট করুন এবং আপনার ক্লায়েন্টরা panel.yourcompany.com-এ আপনার লোগো ও রঙের মাধ্যমে সাইন ইন করবেন। একই প্যানেল, আপনার ঠিকানা। | | আপনার নিজস্ব ওয়েবসাইট | WordPress প্লাগইন আপনার সাইটে ডোমেইন অনুসন্ধান এবং একটি ওয়ান-ক্লিক সাইন-ইন লিঙ্ক যুক্ত করে এবং আপনার নিজস্ব WooCommerce চেকআউটের মাধ্যমে অর্ডার গ্রহণ করে। | | আপনার বিলিং প্যানেল | WHMCS বা HostBill প্রধান দরজা হিসেবে থাকবে; এর পেছনের মডিউল প্রভিশন করবে এবং ক্লায়েন্ট-এরিয়া বোতামটি তাদের সরাসরি হোস্টিংয়ে সাইন ইন করিয়ে দেবে। |
⛔ আপনি যেটিই বেছে নিন না কেন, আপনার ক্লায়েন্টদের জন্য আপনিই হলেন রেকর্ড মার্চেন্ট: আপনার দাম, আপনার চালান, আপনার ভ্যাট নম্বর, আপনার পেমেন্ট প্রদানকারী। আমরা পাইকারি মূল্যে মাসে একবার আপনাকে বিল করি।
একবার আপনি প্যানেলের হোস্টের নাম সেট করে ফেললে, এটিকে WordPress প্লাগইনের Panel address ফিল্ডে রাখুন এবং অন্য কোথাও নয় — এই এপিআই (API) যে সাইন-ইন লিঙ্কগুলো তৈরি করে তা স্বয়ংক্রিয়ভাবে এটি অনুসরণ করে।
প্রবেশ করার চারটি উপায়
প্রবেশ করার চারটি উপায় রয়েছে এবং ভেতরের দিকে তারা সবাই একই কাজ করে:
| | কার জন্য | |---|---| | WHMCS মডিউল | একটি WHMCS শপ | | HostBill মডিউল | একটি HostBill শপ | | WordPress প্লাগইন | আপনার নিজস্ব WordPress বা WooCommerce সাইট থেকে বিক্রি করা | | API | অন্য যেকোনো কিছু — Blesta, একটি ইন-হাউস সিস্টেম, একটি ক্রন স্ক্রিপ্ট |
১. একটি API key পান
আপনার ড্যাশবোর্ডে গিয়ে API keys-এ যান এবং একটি তৈরি করুন। এটিকে কেবল সেটাই দিন যা এর প্রয়োজন:
| অনুমতি | কেন | |---|---| | org.read | আপনার ক্লায়েন্ট অ্যাকাউন্টগুলি পড়ুন | | sites.create | একটি সাইট প্রভিশন করুন | | sites.view | একটি পরিষেবা পড়ুন | | sites.delete | বাতিল করুন | | reseller.view | আপনার পরিষেবাগুলির তালিকা তৈরি করুন এবং ব্যবহার পড়ুন | | reseller.provision | একজন ক্লায়েন্টকে স্থগিত করুন, প্রকাশ করুন এবং সাইন ইন করান |
⛔ কোনো ইন্টিগ্রেশনকে reseller.manage দেবেন না। সেই অনুমতিটি আপনার মূল্য তালিকা এবং আপনার নিজস্ব পেমেন্ট-গেটওয়ে শংসাপত্রগুলি সম্পাদনা করে। reseller.provision ঠিক এজন্যই বিদ্যমান যাতে বিলিং প্যানেল বা ওয়েবসাইটে আপনি যে কি (key) পেস্ট করেন তার এটির প্রয়োজন না হয়।
কি (key) কেবল একবার দেখানো হয়। এটিকে এমন জায়গায় সংরক্ষণ করুন যেখানে আপনি আপনার অন্য শংসাপত্রগুলি সংরক্ষণ করেন — আপনার ওয়েব সার্ভার পরিবেশন করে এমন কোনো ফাইলে কখনই নয়।
২. আপনার প্রথম কল করুন
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
এটি আপনার প্রভিশন করা প্রতিটি পরিষেবা ফিরিয়ে দেয়, প্রতি সাইটে একটি সারি, যার সাথে এর অন্তর্গত ক্লায়েন্ট, এর স্ট্যাটাস এবং আপনি এর জন্য কত চার্জ করেন তা থাকে। একটি নতুন অ্যাকাউন্টে এটি একটি খালি তালিকা — যা সঠিক উত্তর, কোনো ত্রুটি নয়।
৩. পুরো ইন্টিগ্রেশন, ছয়টি কলে
WHEN CALL
an order is paid POST /v1/orgs once per CUSTOMER
POST /v1/sites once per SERVICE
they have not paid POST /v1/reseller/services/{siteId}/suspend
they pay POST /v1/reseller/services/{siteId}/unsuspend
they cancel DELETE /v1/sites/{siteId}
"log in to hosting" POST /v1/reseller/services/{siteId}/sso
প্রভিশনিং হলো দুটি কল, এবং কি (key) গুলো গুরুত্বপূর্ণ:
# 1. গ্রাহকের অ্যাকাউন্ট — আপনার গ্রাহক আইডির উপর ভিত্তি করে তৈরি
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. তাদের সাইট — আপনার পরিষেবা আইডির উপর ভিত্তি করে তৈরি
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) ওপর ভিত্তি করে সাইট তৈরি করুন। একজন গ্রাহকের দ্বিতীয় অর্ডারটি অবশ্যই তাদের ইতিমধ্যে থাকা অ্যাকাউন্টের মধ্যেই পড়তে হবে। উভয়কেই পরিষেবার ওপর ভিত্তি করে তৈরি করুন এবং একজন গ্রাহক তিনটি অমিল অ্যাকাউন্ট এবং তিনটি পৃথক প্যানেল নিয়ে শেষ করবেন। ২. প্রতিটি POST-এ একটি Idempotency-Key পাঠান, যা জিনিসটির জন্য আপনার নিজের আইডি থেকে তৈরি। প্রতিটি বিলিং সিস্টেম পুনরায় চেষ্টা করে — একটি গেটওয়ে কলব্যাক দুবার আসে, একজন অ্যাডমিন একটি ব্যর্থ প্রভিশন পুনরায় চালান, একজন গ্রাহক ডাবল-ক্লিক করেন। কি (key) ছাড়া দ্বিতীয় প্রচেষ্টাটি একটি দ্বিতীয় সাইট তৈরি করে এবং এর জন্য আপনাকে বিল করা হয়।
তিনটি উত্তর যেগুলোকে দুটিতে নামিয়ে আনা যাবে না
unsuspendউত্তর হিসেবে409দিতে পারে। এর অর্থ হলো আমাদের অপব্যবহার রোধকারী দল (abuse team) সাইটটি আটকে রেখেছে, আপনি নন। বার্তাটি দেখান; এটি আবার চেষ্টা করবেন না।- **বাতিল করা মানে মুছে ফেলার সময়সূচি নির্ধারণ করা, এটি তাৎক্ষণিকভাবে মুছে ফেলে না।** তারিখটি
pending_deletion_atহিসেবে ফিরে আসে। কোনো গ্রাহককে তাদের ডেটা চলে গেছে বলে জানানো যখন তা যায়নি, তা তাদের কিছুই না জানানোর চেয়েও খারাপ। disk_used_bytesnullহতে পারে, এবং null শূন্য নয়। এর মানে হলো আমরা মাপতে পারিনি, এমন নয় যে কিছুই ব্যবহার করা হয়নি। এটি বাদ দিন — আপনার নিজের রেকর্ডে0লিখবেন না, নতুবা আপনি এমন একটি সাইটের জন্য গ্রাহককে ব্যবহারের সবুজ বার দেখাবেন যেখান থেকে আপনার কাছে কোনো পরিমাপ নেই।
৪. একজন ক্লায়েন্টকে সাইন ইন করান
POST /v1/reseller/services/{siteId}/sso একটি একক-ব্যবহারের ইউআরএল (URL) ফিরিয়ে দেয় যা আপনার ক্লায়েন্টকে সরাসরি তাদের নিজস্ব অ্যাকাউন্টে প্রবেশ করায়, ইতিমধ্যে সাইন ইন করা অবস্থায়।
⛔ তারা ক্লিক করার পর এটি তৈরি করুন, পৃষ্ঠা রেন্ডার করার সময় কখনই নয়। লিঙ্কটি একক-ব্যবহারের এবং মিনিটের মধ্যে মেয়াদোত্তীর্ণ হয়ে যায়, তাই একটি পৃষ্ঠায় লেখা লিঙ্ক প্রথম পৃষ্ঠা প্রদর্শনেই পুড়ে যায় এবং আপনার ও ব্রাউজারের মাঝের প্রতিটি ক্যাশে থেকে যায়।
৫. এর বদলে একটি মডিউল ইনস্টল করুন
- WHMCS — মডিউলটিকে
modules/servers/zinn/-এ কপি করুন, এমন একটি সার্ভার যোগ করুন যার Password হলো আপনার API key, এবং পণ্যের ওপর প্রোডাক্ট লাইন সেট করুন। Test Connection চাপুন: এটি একটি আসল কল করে এবং প্ল্যাটফর্ম কী বলেছে তা আপনাকে জানায়। - HostBill —
includes/modules/Hosting/zinn/-এ কপি করুন এবং একইভাবে সংযোগ স্থাপন করুন। - WordPress — Zinn® Reseller Toolkit: ডোমেইন অনুসন্ধান, আপনার ক্লায়েন্টদের হোস্টিংয়ে একটি সাইন-ইন লিঙ্ক, এবং কোনো অর্ডার পরিশোধ করা হলে WooCommerce প্রভিশনিং। ওপেন সোর্স পাওয়া যাচ্ছে <https://github.com/Zinn-Digital/zinn-reseller-toolkit>-এ, অথবা আপনার ড্যাশবোর্ডের Plugins থেকে এটি ডাউনলোড করুন।
৬. লাইভ করুন
একটি আসল অর্ডার নেওয়ার আগে এগুলো পরীক্ষা করে নিন:
- মডিউলে সংযোগ পরীক্ষা সফল হয়, অথবা আপনার প্রথম
curlএকটি তালিকা ফিরিয়ে দেয়। - আপনার মূল্য তালিকা সেট করা আছে (Reselling → Your prices)।
- আপনার পেমেন্ট গেটওয়ে সংযুক্ত আছে (Reselling → Payment gateways) — আপনার ক্লায়েন্টরা আপনার নিজের অ্যাকাউন্টের মাধ্যমে আপনাকে পেমেন্ট করেন।
- আপনার কোম্পানির বিবরণ দেওয়া আছে (Reselling → Your company) যাতে আপনার ক্লায়েন্টের চালানে আমাদের পরিবর্তে আপনার আইনি সত্ত্বা এবং ভ্যাট নম্বর থাকে।
- আপনি একটি আসল অর্ডার শুরু থেকে শেষ পর্যন্ত দিয়েছেন এবং সাইটটিকে উপস্থিত হতে দেখেছেন।
বাকি সবকিছু যেখানে রয়েছে
সম্পূর্ণ API রেফারেন্স — প্রতিটি এন্ডপয়েন্ট, আমাদের স্পেসিফিকেশন থেকে তৈরি, প্রতিটির যে অনুমতি প্রয়োজন তা সহ — <https://zinndigital.com/developers/api>-এ রয়েছে।
এখনও আটকে আছেন?
প্রতিটি প্ল্যানেই সহায়তা অন্তর্ভুক্ত রয়েছে এবং আপনার নিজের ভাষাতেই উত্তর দেওয়া হয়।
সহায়তার জন্য যোগাযোগ করুন → সব নিবন্ধ →