آپ ہماری ہوسٹنگ دوبارہ فروخت (ری سیل) کرتے ہیں۔ آپ کے کلائنٹس آپ کے اپنے ہیں: آپ کی قیمتیں، آپ کے انوائسز، آپ کا ادائیگی فراہم کنندہ۔ اس طرح آپ ہمارے پلیٹ فارم کو اپنے پہلے سے زیرِ استعمال نظام سے چلاتے ہیں — چاہے وہ بلنگ پینل ہو، آپ کی اپنی WordPress سائٹ ہو، یا کوئی اسکرپٹ۔
آپ کے کلائنٹس درحقیقت کیا دیکھتے ہیں
طریقہ کار سے پہلے: آپ کے کلائنٹس کو کبھی بھی ہمیں دیکھنے کی ضرورت نہیں پڑتی۔ تین سطحیں ہیں، اور آپ منتخب کرتے ہیں کہ آپ کون سی استعمال کرتے ہیں۔
| سطح | یہ کس کی ہے |
|---|
| ہوسٹنگ پینل، آپ کے اپنے ہوسٹ نام پر | Reselling ← Your brand کے تحت ایک پینل ہوسٹ نام متعین کریں اور آپ کے کلائنٹس آپ کے لوگو اور آپ کے رنگوں کے ساتھ panel.yourcompany.com پر سائن ان کریں گے۔ وہی پینل، آپ کا پتہ۔ |
| آپ کی اپنی ویب سائٹ | WordPress پلگ اِن آپ کی سائٹ پر ڈومین سرچ اور ایک کلک کا سائن ان لنک فراہم کرتا ہے، اور آپ کے اپنے WooCommerce چیک آؤٹ کے ذریعے آرڈر وصول کرتا ہے۔ |
| آپ کا بلنگ پینل | WHMCS یا HostBill صدر دروازہ رہتا ہے؛ ماڈیول اس کے پیچھے سروس مہیا (provision) کرتا ہے اور کلائنٹ ایریا کا بٹن انہیں براہ راست ان کی ہوسٹنگ میں سائن ان کر دیتا ہے۔ |
⛔ آپ جو بھی منتخب کریں، آپ اپنے کلائنٹس کے لیے مرچنٹ آف ریکارڈ ہیں: آپ کی قیمتیں، آپ کے انوائسز، آپ کا VAT نمبر، آپ کا ادائیگی فراہم کنندہ۔ ہم آپ کو، مہینے میں ایک بار، ہول سیل قیمت پر بل بھیجتے ہیں۔
ایک بار جب آپ پینل کا ہوسٹ نام متعین کر لیں، تو اسے WordPress پلگ اِن کے Panel address فیلڈ میں درج کریں اور کسی اور چیز میں نہیں — یہ API جو سائن ان لنکس تخلیق کرتی ہے وہ خود بخود اس کی پیروی کرتے ہیں۔
شامل ہونے کے چار طریقے
شامل ہونے کے چار طریقے ہیں، اور پس پردہ وہ سب ایک ہی کام کرتے ہیں:
| برائے |
|---|
| WHMCS ماڈیول | ایک WHMCS شاپ |
| HostBill ماڈیول | ایک HostBill شاپ |
| WordPress پلگ اِن | آپ کی اپنی WordPress یا WooCommerce سائٹ سے فروخت کے لیے |
| API | کسی بھی دوسری چیز کے لیے — Blesta، ایک اندرونی نظام، یا cron اسکرپٹ |
1. ایک API کلید حاصل کریں
اپنے ڈیش بورڈ میں، API keys پر جائیں اور ایک بنائیں۔ اسے صرف وہی اجازتیں دیں جن کی اسے ضرورت ہے:
| اجازت | وجہ |
|---|
org.read | اپنے کلائنٹ اکاؤنٹس پڑھیں |
sites.create | ایک سائٹ مہیا (provision) کریں |
sites.view | سروس کی معلومات پڑھیں |
sites.delete | ختم (terminate) کریں |
reseller.view | اپنی سروسز کی فہرست بنائیں اور استعمال کی تفصیلات پڑھیں |
reseller.provision | سروس معطل کریں، بحال کریں، اور کلائنٹ کو سائن ان کرائیں |
⛔ کسی انضمام (integration) کو reseller.manage کی اجازت نہ دیں۔ یہ اجازت آپ کی قیمتوں کی فہرست اور آپ کے اپنے پیمنٹ گیٹ وے کی اسناد میں ترمیم کرتی ہے۔ reseller.provision کا وجود خاص طور پر اس لیے ہے تاکہ بلنگ پینل یا ویب سائٹ میں پیسٹ کی جانے والی کلید کو اس اجازت کی ضرورت نہ پڑے۔
کلید صرف ایک بار دکھائی جاتی ہے۔ اسے وہاں محفوظ کریں جہاں آپ اپنی دوسری اسناد محفوظ کرتے ہیں — ایسی فائل میں کبھی نہیں جسے آپ کا ویب سرور عوامی طور پر پیش کرتا ہو۔
2. اپنی پہلی کال کریں
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
یہ آپ کی مہیا کردہ ہر سروس، فی سائٹ ایک قطار، اس کے متعلقہ کلائنٹ، اس کی صورتحال (status)، اور اس کے لیے وصول کی جانے والی رقم واپس بھیجتی ہے۔ نئے اکاؤنٹ پر یہ ایک خالی فہرست ہوتی ہے — جو کہ درست جواب ہے، کوئی خرابی (error) نہیں۔
3. مکمل انضمام، چھ کالز میں
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
سروس فراہمی (Provisioning) دو کالز پر مشتمل ہے، اور کلیدیں اہمیت رکھتی ہیں:
# 1. the customer's account — keyed on YOUR 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"}'
# 2. their site — keyed on YOUR 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 بھیجیں، جو اس چیز کے لیے آپ کی اپنی شناخت (id) سے تیار کی گئی ہو۔ ہر بلنگ سسٹم دوبارہ کوشش کرتا ہے — گیٹ وے کا کال بیک دو بار موصول ہوتا ہے، کوئی ایڈمن ناکام پروویژن کو دوبارہ چلاتا ہے، یا صارف ڈبل کلک کر دیتا ہے۔ اس کلید کے بغیر، دوسری کوشش ایک دوسری سائٹ بنا دیتی ہے اور اس کا بل آپ کو بھیجا جاتا ہے۔
تین جوابات جنہیں آپ کو دو میں ضم نہیں کرنا چاہیے
unsuspend جواب میں 409 دے سکتا ہے۔ اس کا مطلب ہے کہ سائٹ کو ہماری ابیوز (abuse) ٹیم نے روکا ہوا ہے، آپ نے نہیں۔ یہ پیغام دکھائیں؛ دوبارہ کوشش نہ کریں۔
- **ختم کرنا (Terminating) حذف کرنے کا وقت مقرر (schedule) کرتا ہے، یہ فوری طور پر حذف نہیں کرتا۔** تاریخ
pending_deletion_at کے طور پر موصول ہوتی ہے۔ صارف کو یہ بتانا کہ اس کا ڈیٹا پہلے ہی ختم ہو چکا ہے جبکہ ایسا نہ ہوا ہو، کچھ نہ بتانے سے بدتر ہے۔
disk_used_bytes کی قدر null ہو سکتی ہے، اور null کا مطلب صفر نہیں ہوتا۔ اس کا مطلب ہے کہ ہم پیمائش نہیں کر سکے، یہ نہیں کہ کچھ بھی استعمال نہیں ہوا۔ اسے نظر انداز کریں — اپنے ریکارڈ میں 0 نہ لکھیں، ورنہ آپ صارف کو ایسی سائٹ کے لیے سبز رنگ کی استعمال کی پٹی دکھائیں گے جس کی کوئی ریڈنگ آپ کے پاس نہیں ہے۔
4. کلائنٹ کو سائن ان کرائیں
POST /v1/reseller/services/{siteId}/sso ایک بار استعمال ہونے والا URL فراہم کرتا ہے جو آپ کے کلائنٹ کو براہ راست اس کے اپنے اکاؤنٹ میں سائن ان شدہ حالت میں پہنچا دیتا ہے۔
⛔ اسے اس وقت بنائیں جب وہ کلک کریں، پیج رینڈر کرتے وقت کبھی نہیں۔ یہ لنک صرف ایک بار قابلِ استعمال ہوتا ہے اور منٹوں میں ختم ہو جاتا ہے، چنانچہ پیج میں لکھا گیا لنک پہلے پیج ویو پر ہی ضائع ہو جائے گا اور آپ اور براؤزر کے درمیان موجود ہر کیشے میں رہ جائے گا۔
5. اس کے بجائے کوئی ماڈیول انسٹال کریں
- 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> پر دستیاب ہے، یا اسے اپنے ڈیش بورڈ میں Plugins سے ڈاؤن لوڈ کریں۔
6. لائیو جائیں
حقیقی آرڈر وصول کرنے سے پہلے ان کی جانچ کر لیں:
- ماڈیول پر کنکشن کا ٹیسٹ کامیاب ہے، یا آپ کی پہلی
curl ایک فہرست لوٹاتی ہے۔
- آپ کی قیمتوں کی فہرست مرتب کر دی گئی ہے (Reselling ← Your prices).
- آپ کا پیمنٹ گیٹ وے منسلک ہے (Reselling ← Payment gateways) — آپ کے کلائنٹس آپ کو ادائیگی کرتے ہیں، آپ کے اپنے اکاؤنٹ کے ذریعے۔
- آپ کی کمپنی کی تفصیلات درج ہیں (Reselling ← Your company) تاکہ آپ کے کلائنٹ کے انوائسز پر آپ کے قانونی ادارے کا نام اور VAT نمبر آئے، ہمارا نہیں۔
- آپ نے شروع سے آخر تک ایک حقیقی آرڈر دیا ہے اور سائٹ کو بنتے دیکھا ہے۔
باقی تمام معلومات کہاں ہیں
مکمل API حوالہ — ہماری تصریحات سے تیار کردہ تمام اینڈ پوائنٹس، بشمول ہر ایک کے لیے درکار اجازت — <https://zinndigital.com/developers/api> پر دستیاب ہے۔