Siz bizning xostingimizni qayta sotishingiz mumkin. Mijozlaringiz faqat sizniki: narxlaringiz, hisob-fakturalaringiz, toʻlov provayderingiz. Siz allaqachon foydalanayotgan har qanday vositadan — hisob-kitob paneli, oʻzingizning WordPress saytingiz yoki skript orqali platformamizni mana shunday boshqarasiz.
Mijozlaringiz aslida nimani koʻrishadi
Mexanizmga oʻtishdan oldin: mijozlaringiz bizni hech qachon koʻrishlari shart emas. Uchta interfeys mavjud va ularning qay biridan foydalanishni oʻzingiz tanlaysiz.
| Interfeys | Kimga tegishli |
|---|
| Oʻzingizning xost nomingizdagi xosting paneli | Qayta sotish → Sizning brendingiz boʻlimida panel xost nomini sozlang va mijozlaringiz panel.yourcompany.com manzilida sizning logotipingiz hamda ranglaringiz bilan tizimga kirishadi. Oʻsha panel, sizning manzilingiz. |
| Oʻzingizning veb-saytingiz | WordPress plagini saytingizga domen qidiruvi va bir marta bosish orqali kirish havolasini joylashtiradi hamda buyurtmani oʻzingizning WooCommerce toʻlov sahifangiz orqali qabul qiladi. |
| Hisob-kitob panelingiz | WHMCS yoki HostBill asosiy kirish nuqtasi boʻlib qoladi; modul uning ortida xizmatni taqdim etadi va mijozlar hududidagi tugma ularni toʻgʻridan-toʻgʻri oʻzlarining xostingiga kiritadi. |
⛔ Qaysi birini tanlashingizdan qatʼi nazar, siz mijozlaringiz uchun rasmiy sotuvchisiz: sizning narxlaringiz, hisob-fakturalaringiz, QQS raqamingiz, toʻlov provayderingiz. Biz esa toʻlovni oyiga bir marta, ulgurji narxda sizdan olamiz.
Panel xost nomini oʻrnatganingizdan soʻng, uni WordPress plaginining faqat Panel manzili maydoniga kiriting va boshqa hech narsaga tegmang — ushbu API tomonidan yaratilgan kirish havolalari avtomatik tarzda unga moslashadi.
Tizimga ulanishning toʻrtta usuli
Ulanishning toʻrtta usuli mavjud boʻlib, ularning barchasi mohiyatan bir xil ishni bajaradi:
| Moʻljallangan |
|---|
| WHMCS moduli | WHMCS doʻkoni uchun |
| HostBill moduli | HostBill doʻkoni uchun |
| WordPress plagini | Oʻzingizning WordPress yoki WooCommerce saytingizdan sotish uchun |
| API | Qolgan barcha narsalar — Blesta, ichki tizim, cron skripti uchun |
1. API kalitini oling
Boshqaruv panelingizda API kalitlari boʻlimiga oʻting va bitta kalit yarating. Unga faqat zarur ruxsatlarni bering:
| Ruxsat | Sababi |
|---|
org.read | Mijoz hisoblarini oʻqish |
sites.create | Saytni taqdim etish |
sites.view | Xizmatni koʻrish |
sites.delete | Bekor qilish/oʻchirish |
reseller.view | Xizmatlaringizni roʻyxatlash va foydalanishni koʻrish |
reseller.provision | Toʻxtatish, qayta tiklash va mijozni tizimga kiritish |
⛔ Integratsiyaga reseller.manage ruxsatini bermang. Bu ruxsat sizning narxlar roʻyxatingizni va shaxsiy toʻlov shlyuzi maʼlumotlaringizni tahrirlaydi. reseller.provision aynan hisob-kitob paneliga yoki veb-saytga joylashtiriladigan kalit bunga ehtiyoj sezmasligi uchun mavjud.
Kalit faqat bir marta koʻrsatiladi. Uni boshqa hisob maʼlumotlaringiz saqlanadigan joyda saqlang — hech qachon veb-serveringiz xizmat koʻrsatadigan fayl ichida qoldirmang.
2. Birinchi soʻrovingizni yuboring
curl https://api.zinndigital.com/v1/reseller/services \
-H "Authorization: Bearer zdk_live_…"
Bu siz taqdim etgan har bir xizmatni qaytaradi: har bir sayt uchun bitta qator, u tegishli boʻlgan mijoz, uning holati va buning uchun siz oladigan toʻlov bilan birga. Yangi hisobda bu boʻsh roʻyxat boʻladi — bu xatolik emas, toʻgʻri javobdir.
3. Butun integratsiya, oltita soʻrovda
QACHON SOʻROV
buyurtma toʻlanganda POST /v1/orgs har bir MIJOZ uchun bir marta
POST /v1/sites har bir XIZMAT uchun bir marta
toʻlov qilinmaganda POST /v1/reseller/services/{siteId}/suspend
toʻlov qilinganda POST /v1/reseller/services/{siteId}/unsuspend
bekor qilinganda DELETE /v1/sites/{siteId}
"xostingga kirish" POST /v1/reseller/services/{siteId}/sso
Taqdim etish ikkita soʻrovdan iborat boʻlib, kalitlar muhim ahamiyatga ega:
# 1. mijozning hisobi — SIZNING mijoz identifikatoringizga bogʻlangan
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. ularning sayti — SIZNING xizmat identifikatoringizga bogʻlangan
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"}'
Xato qilinganda mablagʻ yoʻqotilishiga olib keladigan ikkita qoida
- Hisobni MIJOZINGIZGA, saytni esa XIZMATINGIZGA bogʻlang. Mijozning ikkinchi buyurtmasi u allaqachon ega boʻlgan hisobga tushishi kerak. Har ikkalasini ham xizmatga bogʻlasangiz, bitta mijoz bir-biriga bogʻliq boʻlmagan uchta hisob va uchta alohida panelga ega boʻlib qoladi.
- Har bir
POST soʻrovida obyekt uchun oʻzingizning identifikatoringizdan tuzilgan Idempotency-Key yuboring. Har qanday billing tizimi qayta urinishlarni amalga oshiradi — toʻlov shlyuzining qayta qoʻngʻirogʻi ikki marta keladi, administrator muvaffaqiyatsiz taqdim etishni qayta ishga tushiradi, mijoz tugmani ikki marta bosadi. Kalitsiz ikkinchi urinish ikkinchi saytni yaratadi va buning uchun sizdan haq olinadi.
Ikkita holatga tenglashtirib yubormaslik kerak boʻlgan uchta javob
unsuspend soʻrovi 409 javobini qaytarishi mumkin. Bu degani sayt siz emas, bizning qonunbuzarliklarga qarshi kurashish guruhimiz tomonidan toʻxtatilgan. Xabarni koʻrsating; uni qayta urinib koʻrmang.
- **Bekor qilish oʻchirishni darhol bajarmaydi, balki uni rejalashtiradi.** Sana
pending_deletion_at sifatida qaytadi. Mijozga ularning maʼlumotlari hali oʻchirilmagan boʻlsa-da, allaqachon yoʻq qilingan deb aytish hech narsa aytmaslikdan ham yomonroqdir.
disk_used_bytes qiymati null boʻlishi mumkin va null nol degani emas. Bu hech narsa ishlatilmaganligini emas, balki biz oʻlchay olmaganimizni bildiradi. Uni oʻtkazib yuboring — oʻzingizning yozuvlaringizga 0 deb yozmang, aks holda siz hech qanday koʻrsatkichga ega boʻlmagan sayt uchun mijozga yashil foydalanish panelini koʻrsatib qoʻyasiz.
4. Mijozni tizimga kiriting
POST /v1/reseller/services/{siteId}/sso mijozingizni toʻgʻridan-toʻgʻri oʻz hisobiga allaqachon kirgan holatda yoʻnaltiradigan bir martalik URL manzilini qaytaradi.
⛔ Uni sahifani yuklaganingizda emas, aynan ular bosgan paytda yarating. Havola bir martalik boʻlib, bir necha daqiqa ichida muddati tugaydi, shuning uchun sahifaga yozilgan havola birinchi sahifa koʻrilgandayoq kuyadi va siz bilan brauzer oʻrtasidagi har bir keshda qolib ketadi.
5. Buning oʻrniga modul oʻrnating
- WHMCS — modulni
modules/servers/zinn/ jildiga nusxalang, Parol maydoniga API kalitingiz kiritilgan serverni qoʻshing va mahsulotda mahsulot turkumini sozlang. Test Connection tugmasini bosing: u haqiqiy soʻrovni amalga oshiradi va platformaning javobini koʻrsatadi.
- HostBill —
includes/modules/Hosting/zinn/ jildiga nusxalang va uni xuddi shu tartibda ulang.
- WordPress — Zinn® Reseller Toolkit: domen qidiruvi, mijozlaringiz xostingiga kirish havolasi va buyurtma toʻlanganda WooCommerce orqali xizmatni taqdim etish. Ochiq manbali kod: <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, yoki uni boshqaruv panelingizdagi Plaginlar boʻlimidan yuklab oling.
6. Xizmatni ishga tushiring
Haqiqiy buyurtmani qabul qilishdan oldin quyidagilarni tekshiring:
- Modulda ulanish testi muvaffaqiyatli oʻtdi yoki birinchi
curl soʻrovingiz roʻyxat qaytardi.
- Narxlar roʻyxatingiz sozlangan (Qayta sotish → Sizning narxlaringiz).
- Toʻlov shlyuzingiz ulangan (Qayta sotish → Toʻlov shlyuzlari) — mijozlaringiz toʻlovni sizga, oʻzingizning hisobingiz orqali amalga oshiradilar.
- Kompaniya maʼlumotlaringiz kiritilgan (Qayta sotish → Sizning kompaniyangiz), shu bois mijozlaringiz hisob-fakturalarida bizning emas, balki sizning yuridik shaxsingiz va QQS raqamingiz koʻrsatiladi.
- Siz bitta haqiqiy buyurtmani boshidan oxirigacha amalga oshirdingiz va sayt paydo boʻlganini koʻrdingiz.
Qolgan barcha maʼlumotlar qayerda
API boʻyicha toʻliq maʼlumotnoma — har bir soʻnggi nuqta, bizning spetsifikatsiyamizdan yaratilgan holda, har biri uchun zarur boʻlgan ruxsatlar bilan: <https://zinndigital.com/developers/api>.