Zinn Digital® ماڈیول WHMCS کے اپنے بٹنوں کو ہمارے پلیٹ فارم پر حقیقی کارروائیوں میں تبدیل کر دیتا ہے۔ ایک آرڈر آپ کے کلائنٹ کی ہوسٹنگ کو پروویژن (provision) کرتا ہے۔ WHMCS کا واجب الادا انوائس آٹومیشن اسے معطل (suspend) کر دیتا ہے۔ انوائس کو ادا شدہ کے طور پر نشان زد کرنا اسے بحال کر دیتا ہے۔ منسوخ کرنا حذف کرنے کا شیڈول طے کرتا ہے۔ اور آپ کے کلائنٹ کو ان کے کلائنٹ ایریا میں ایک Log in to hosting panel بٹن ملتا ہے جو انہیں براہِ راست سائن ان کر دیتا ہے۔
یہ مفت، GPL-2.0-or-later کے تحت لائسنس یافتہ ہے، اور ہمارے پلیٹ فارم میں اس کا کوئی مراعات یافتہ راستہ (privileged path) نہیں ہے: ہر وہ کال جو یہ کرتا ہے وہ ایک دستاویزی اینڈ پوائنٹ ہے جسے آپ اپنی API key کے ذریعے خود بھی انجام دے سکتے ہیں۔
شروع کرنے سے پہلے
آپ کو دو چیزوں کی ضرورت ہے، اور دوسری چیز لوگوں کو الجھن میں ڈال دیتی ہے۔
- فعال پروگرام کے ساتھ ایک Zinn® ریسیلر اکاؤنٹ۔ zinndigital.com پر سائن اپ کریں اور ریسیلنگ کو فعال کریں۔
- سائٹ الاؤنس والا ایک ریسیلر پلان۔ آپ کے کلائنٹس جو سائٹس آرڈر کرتے ہیں وہ آپ کے پلان میں شمار ہوتی ہیں، لہٰذا آپ کو ایک ایسے پلان کی ضرورت ہے جس میں گنجائش ہو۔
⚠️ Test Connection آپ کو یہ نہیں بتا سکتا کہ آیا کوئی آرڈر کامیاب ہوگا یا نہیں۔ یہ آپ کے پروگرام کو پڑھتا ہے اور کچھ بھی پروویژن نہیں کرتا، اس لیے یہ ایک درست active اکاؤنٹ رپورٹ کرتا ہے جو فی الحال کچھ بھی فروخت نہیں کر سکتا۔ اگر آپ کا پہلا آرڈر اس خرابی کے ساتھ ناکام ہو جاتا ہے کہ "This organization has no hosting plan, so it cannot host a site yet"، تو اصل میں یہی ہوا ہے — اپنا ریسیلر پلان خریدیں یا اس میں توسیع کریں اور دوبارہ آرڈر دیں۔ ماڈیول میں کوئی خرابی نہیں ہے۔
1. API key بنائیں
اپنے Zinn® ڈیش بورڈ میں، API keys کھولیں اور بالکل ان گیارہ اجازتوں (permissions) کے ساتھ ایک کی (key) بنائیں:
| اجازت | اس کی ضرورت کیوں ہے |
|---|
org.create | آپ کے کلائنٹ کے پہلے آرڈر پر ان کا Zinn® اکاؤنٹ کھولیں۔ |
org.read | اپنے کلائنٹ کے اکاؤنٹس پڑھیں۔ |
sites.create | سائٹ پروویژن کریں۔ |
sites.view | ایک سروس اور اس کا استعمال پڑھیں۔ |
sites.delete | سروس ختم (Terminate) کریں۔ |
reseller.view | جو کچھ آپ نے فروخت کیا ہے اس کی فہرست بنائیں، اور ڈسک و بینڈوڈتھ پڑھیں۔ |
reseller.provision | معطل کریں، بحال کریں، کلائنٹ کو سائن ان کرائیں، ان کا پلان سیٹ کریں اور ان کا پیکیج تبدیل کریں۔ |
billing.view | اپ گریڈ کرنے سے پہلے پڑھیں کہ اس پر کتنا خرچ آئے گا۔ |
sites.manage | بٹنوں کے ذریعے کیشے خالی (purge) کریں اور بیک اپ لیں۔ |
sites.panel_access | WordPress ایڈمنسٹریٹر کا پاس ورڈ تبدیل کریں۔ |
hosting.php.manage | اپ گریڈ یا ڈاؤن گریڈ پر PHP ورژن تبدیل کریں۔ |
⛔ reseller.manage کی اجازت نہ دیں۔ بلنگ پینل میں پیسٹ کی گئی کی (key) اس قابل ہونی چاہیے کہ وہ عدم ادائیگی پر کلائنٹ کو روک سکے اور انہیں سائن ان کرا سکے۔ اسے آپ کے اپنے پیمنٹ گیٹ وے کی اسناد (credentials) کو پڑھنے اور دوبارہ لکھنے کی اجازت نہیں ہونی چاہیے۔ 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 key
⛔ یہ کی (key) Password والے فیلڈ میں جاتی ہے، جسے WHMCS انکرپٹ کر کے محفوظ کرتا ہے۔ اسے پروڈکٹ کنفیگریشن آپشن میں نہ ڈالیں — وہ ڈیٹا بیس میں سادہ متن (plain text) کی شکل میں ہوتے ہیں اور ہر ایڈمن کو دکھائی دیتے ہیں، اور یہ اسناد آپ کے کلائنٹس کی ہوسٹنگ بنا اور ختم کر سکتی ہیں۔
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 پروڈکٹ پر سیٹ ہوتا ہے اور اس سے متاثر نہیں ہوتا۔ |
⛔⛔ پلان کوڈ لازمی ہے، اور اس کے بغیر آرڈر کو جان بوجھ کر مسترد کر دیا جاتا ہے۔ 2026-09-01 تک یہ فیلڈ صرف نمائشی تھا اور کوئی بھی اسے نہیں پڑھتا تھا، اس لیے ماڈیول نے ایسی ہوسٹنگ کا آرڈر دیا جس پر کوئی پلان ہی نہیں تھا — اور اس کے تمام نتائج خاموش رہے۔ آپ کا ہول سیل اسٹیٹمنٹ آپ کے کلائنٹس کی فعال سبسکرپشنز سے تیار ہوتا ہے، اس لیے سروس کے لیے کوئی لائن موجود نہیں تھی اور جب تک وہ چلتی رہی آپ کو کوئی بل نہیں بھیجا گیا؛ آپ کے کلائنٹ کو کوئی الاؤنس منتقل نہیں ہوا، اس لیے ان کی سائٹ پر کوئی ڈسک یا فائل کوٹہ لاگو نہیں کیا گیا؛ اور Change Package کے پاس تبدیل کرنے کے لیے کچھ نہیں تھا، لہٰذا آپ کا فروخت کردہ اپ گریڈ انجام نہیں دیا جا سکا۔ اس دوران سائٹ بالکل درست طریقے سے پروویژن ہوئی اور سروس فراہم کرتی رہی۔
ماڈیول اب اس کے بجائے آرڈر کو مسترد کر دیتا ہے، کیونکہ اس کے پاس اندازہ لگانے کے لیے کوئی محفوظ پلان نہیں ہے: اندازہ لگانے کی صورت میں ہوسٹنگ کسی ایسے پلان پر پروویژن ہو جائے گی جو آپ نے منتخب نہیں کیا اور شاید اس کی قیمت بھی طے نہیں کی، اور — مسترد ہونے کے برعکس، جسے آپ فوراً پڑھ لیتے ہیں — یہ بات صرف تب سامنے آئے گی جب اسٹیٹمنٹ آئے گا، اگر بالکل آئے۔
Auto Setup کو اپنی پسند کے مطابق سیٹ کریں — ماڈیول WHMCS سروس آئی ڈی کے لحاظ سے خود کار اور یکساں اثر والا (idempotent) ہے، اس لیے دوبارہ کوشش کی گئی پروویژن آپ سے دوسری بار چارج کرنے کے بجائے وہی سائٹ واپس کرتی ہے۔
WHMCS کا ہر عمل کیا کرتا ہے
| WHMCS کا عمل | ہمارے ہاں کیا ہوتا ہے |
|---|
| Create | کلائنٹ کا Zinn® اکاؤنٹ بناتا ہے (یا ان کے پہلے سے موجود اکاؤنٹ کو دوبارہ استعمال کرتا ہے) اور ان کی سائٹ پروویژن کرتا ہے۔ |
| Suspend | عدم ادائیگی کی بنا پر سائٹ کو روک دیتا ہے۔ مواد برقرار رہتا ہے؛ کچھ بھی حذف نہیں کیا جاتا۔ |
| Unsuspend | آپ کی لگائی گئی روک کو ختم کرتا ہے۔ |
| Terminate | رعایتی مدت (grace period) کے ساتھ سائٹ کو حذف کرنے کا شیڈول طے کرتا ہے۔ یہ تاریخ کلائنٹ ایریا میں دکھائی دیتی ہے۔ |
| 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 مسترد ہونے کا جواب دے سکتا ہے۔ اس کا مطلب ہے کہ سائٹ ہماری ابیوز (abuse) ٹیم نے معطل کی تھی، آپ نے نہیں، اور کوئی بھی بلنگ پینل اسے بحال نہیں کر سکتا۔ پیغام میں یہی کہا جاتا ہے؛ دوبارہ کوشش کرنے کے بجائے اسے اپنے ایڈمن کو دکھائیں۔
- Terminate حذف کرنے کا شیڈول طے کرتا ہے، یہ فوری حذف نہیں کرتا۔ تاریخ
pending_deletion_at کے طور پر واپس آتی ہے اور کلائنٹ ایریا اسے دکھاتا ہے۔ کسٹمر کو یہ بتانا کہ ان کا ڈیٹا پہلے ہی ختم ہو چکا ہے جب کہ وہ موجود ہو، کچھ نہ بتانے سے بھی بدتر ہے۔
- ڈسک اور بینڈوڈتھ نامعلوم ہو سکتے ہیں، اور نامعلوم کا مطلب صفر نہیں ہوتا۔ جب ہم ریڈنگ حاصل نہ کر سکے ہوں تو ماڈیول
0 لکھنے کے بجائے اس ہندسے کو ویسے ہی چھوڑ دیتا ہے — ورنہ WHMCS آپ کے کسٹمر کو اس سائٹ کے لیے ایک پُرسکون خالی استعمال کی بار دکھائے گا جس کی ہمارے پاس کوئی ریڈنگ نہیں ہے۔
مسائل کا حل
Test Connection پاس ہو جاتا ہے اور پہلا آرڈر اجازت کی خرابی (permission error) کے ساتھ ناکام ہو جاتا ہے۔ API key میں org.create موجود نہیں ہے۔ ماڈیول کو کلائنٹ کی سائٹ بنانے سے پہلے ان کا اکاؤنٹ کھولنا ہوتا ہے۔
کوئی آرڈر یہ کہتے ہوئے ناکام ہو جاتا ہے کہ ادارے کے پاس کوئی ہوسٹنگ پلان نہیں ہے۔ آپ کے ریسیلر پلان میں کوئی سائٹ الاؤنس باقی نہیں بچا ہے، یا آپ کے پاس ابھی کوئی پلان موجود نہیں ہے۔ اوپر دیے گئے سیکشن شروع کرنے سے پہلے کو دیکھیں۔
کوئی آرڈر کسی اسٹیک کا ذکر کرتے ہوئے ناکام ہو جاتا ہے۔ پروڈکٹ پر Stack فیلڈ خالی ہے یا کسی ایسی چیز کا نام ہے جو ہم تیار نہیں کرتے۔ جب تک آپ کچھ اور فروخت نہ کر رہے ہوں، اسے wordpress پر سیٹ کریں۔
منسوخیاں ناکام ہو رہی ہیں۔ یقینی بنائیں کہ آپ ماڈیول ورژن 1.0.0 یا اس کے بعد کا ورژن استعمال کر رہے ہیں۔ پرانے ورژنز حذف کرنے کی کوئی تصدیق نہیں بھیجتے تھے اور ہر خاتمہ (termination) مسترد کر دیا جاتا تھا، جس کی وجہ سے سروس چلتی رہتی تھی اور بلنگ ہوتی رہتی تھی۔
ایسا انکار جس میں کسی فیلڈ کا نام ہو۔ ہماری تصدیقی خرابیاں پیغام کے بعد بریکٹ میں فیلڈ اور وجہ کا نام بتاتی ہیں، مثلاً (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 reference میں موجود ہے۔