Bilimlar bazasi

HostBill, Blesta yoki oʻz tizimingiz orqali Zinn® xostingini soting

Zinn® hostingini HostBill, Blesta yoki oʻz tizimingizdan soting: bepul HostBill moduli, bitta faylli PHP mijozi, buzilganda pul talab qiladigan ikkita qoida va osonlikcha eʼtibordan chetda qoladigan ikkita soʻrov maydoni.

Agar siz WHMCS'dan foydalansangiz, uning oʻrniga WHMCS modulidan foydalaning — bu sahifa qolgan barcha holatlar uchun moʻljallangan. Ikkita variant mavjud, ikkalasi ham bepul va ikkalasi ham GPL-2.0-or-later litsenziyasiga ega.

HostBill

WHMCS moduli kabi bir xil oltita amalga ega boʻlgan hosting moduli.

  1. Uni yuklab oling va arxivdan chiqaring.
  2. zinn direktoriyasini includes/modules/Hosting/ ichiga yuklang, shunda fayllar quyidagi joyda boʻladi:
  3. includes/modules/Hosting/zinn/class.zinn.php va includes/modules/Hosting/zinn/ZinnHostBillClient.php.

  4. Settings → Modules → Hosting boʻlimiga oʻting, Zinn Digital® modulini faollashtiring va ulanish qoʻshing:
  • API address: https://api.zinndigital.com
  • API key: sizning Zinn® API kalitingiz (password maydoni, shuning uchun HostBill uni shifrlangan holda saqlaydi)
  1. Mahsulotda Product line (masalan, mainstream), Stack (standart boʻyicha wordpress), va ixtiyoriy ravishda Application hamda PHP version parametrlarini sozlang.
  2. Test connection tugmasini bosing.

⛔ zinn direktoriyasi nomini oʻzgartirmang. HostBill yuklagichi u qidirayotgan klassni katalog nomidan oladi, shuning uchun nomini oʻzgartirish panel roʻyxatga oladigan, ammo hech qachon chaqirmaydigan modulga olib keladi.

Qolgan barcha holatlar uchun — PHP mijoz

Bitta fayl, hech qanday bogʻliqliklarsiz, panellarga asoslanmagan. Oʻzingizning kodlar bazangizga ZinnProvisioning.php faylini joylashtiring va oltita metodni chaqiring.

require_once 'ZinnProvisioning.php';

$zinn = new ZinnProvisioning(getenv('ZINN_API_KEY'));

// Buyurtma toʻlanganda — MIJOZ boshiga bir marta, soʻngra XIZMAT boshiga bir marta:
$orgId  = $zinn->account('customer-4211', 'Acme Ltd');
$siteId = $zinn->provision('service-9915', $orgId, 'acme.com', 'mainstream', 'wordpress');
// $orgId qiymatini mijozingiz uchun, $siteId qiymatini esa xizmatingiz uchun saqlang.

$zinn->suspend($siteId, 'INV-2026-114 unpaid');   // hisob-faktura toʻlanmay qoladi
$zinn->unsuspend($siteId);                        // ular toʻlov qilishadi
$zinn->terminate($siteId);                        // ular bekor qilishadi — oʻchirishni rejalashtiradi

// Ular "hostingimga kirish" tugmasini bosganda — uni sahifa renderida emas, aynan BOSISH paytida yarating:
header('Location: ' . $zinn->signInLink($siteId));

PHP yozmayapsizmi? Xuddi shu chaqiruvlar API maʼlumotnomasida mavjud va siz ularni har qanday tildan amalga oshirishingiz mumkin.

API kaliti

Yettita ruxsat va boshqa hech narsa emas: org.create, org.read, sites.create, sites.view, sites.delete, reseller.view, reseller.provision.

⛔ reseller.manage emas. Hisob-kitob paneliga kiritadigan kalitingiz toʻlov qilinmagani sababli mijozni toʻxtatib turishi va ularni tizimga kiritishi kerak; u oʻzingizning toʻlov shlyuzi hisob maʼlumotlaringizni qayta yozish imkoniyatiga ega boʻlmasligi kerak.

Buzilganda pul sarflanishiga olib keladigan ikkita qoida

  1. Hisobni MIJOZINGIZGA, saytni esa XIZMATINGIZGA bogʻlang. Mijozning ikkinchi buyurtmasi ular allaqachon ega boʻlgan hisobga tushishi kerak. Ikkalasini ham xizmatga bogʻlasangiz, bitta mijoz oʻzaro bogʻliq boʻlmagan uchta hisob va uchta alohida boshqaruv paneliga ega boʻlib qoladi.
  2. Har bir yaratishda oʻzingizning obyekt identifikatoringizdan olingan idempotensiya kalitini yuboring. Har bir toʻlov tizimi qayta urinib koʻradi — shlyuzdan qayta qoʻngʻiroq ikki marta keladi, administrator muvaffaqiyatsiz provizioningni qayta ishga tushiradi, mijoz ikki marta bosadi. Busiz ikkinchi urinish ikkinchi saytni yaratadi va sizdan buning uchun toʻlov olinadi. Ikkala modul va PHP mijoz buni siz uchun bajaradi; agar siz API'ni toʻgʻridan-toʻgʻri chaqirayotgan boʻlsangiz, Idempotency-Key yuboring.

Qoldirib ketish oson boʻlgan uchta maydon

Ularning har biri butun bir amalni buzadi va validatsiya xatosidan boshqa hech narsa sifatida koʻrinmaydi — birinchisi bundan mustasno, u umuman hech narsa sifatida koʻrinadi:

  • ⛔⛔ Mijozning birinchi sayti taqdim etilishidan OLDIN u tarif rejasiga kiritilishi shart, bu POST /v1/reseller/clients/{orgId}/plan orqali amalga oshiriladi va uning subscription_id parametri POST /v1/sites ga uzatiladi. Bu hech qanday xatolik koʻrsatilmaydigan holatdir. Yangi mijoz hisobida hech qanday obuna boʻlmaydi va POST /v1/sites da tarif rejasi maydoni mavjud emas, shuning uchun usiz taqdim etilgan saytda umuman hech qanday tarif rejasi boʻlmaydi: sizning ulgurji hisob-kitobingiz mijozlaringizning faol obunalaridan shakllantiriladi, shu sababli hech qanday band kiritilmaydi va hosting ishlab turgan vaqt davomida Zinn® sizdan hech qanday haq undirmaydi; mijozingizga hech qanday limitlar oʻtmaydi, shu sababli ularning saytiga hech qanday kvota qoʻllanilmaydi; va tarifni oshirish orqali oʻzgartirish uchun hech narsa mavjud boʻlmaydi. Buyurtma 201 javobini qaytaradi, sayt taqdim etiladi va u mukammal ishlaydi. Ikkala tomonda ham hech narsa bu haqda xabar bermaydi.

Ketma-ketlik muhim ahamiyatga ega: POST /v1/sites ishga tushgan paytda mavjud boʻlgan har qanday obunani qayd etadi, shuning uchun keyinroq oʻrnatilgan tarif rejasi orqaga qarab tatbiq etilmaydi.

  • POST /v1/sites uchun stack_type talab qilinadi. Uni qoldirib ketsangiz, hech qanday buyurtma muvaffaqiyatli yakunlanmaydi.
  • DELETE /v1/sites/{siteId} uchun {"confirm_domain": "<the site's own domain>"} koʻrinishidagi tana (body) talab qilinadi — bu qoʻlda kiritiladigan tasdiqdir, chunki bu oʻchiruvchi amal hisoblanadi. Uni qoldirib ketsangiz, hech qanday bekor qilish muvaffaqiyatli yakunlanmaydi, natijada xizmat ishlashda davom etadi va sizdan uning uchun toʻlov olinishda davom etadi. Oʻzingizning qaydlaringizdan foydalanish oʻrniga domenni GET /v1/reseller/services/{siteId} orqali qayta oʻqing: u saytning taxallusiga emas, faqat oʻzining asosiy domeniga solishtiriladi.

Shunchaki jumlaning oʻzini emas, butun xatolikni oʻqing

Validatsiyadan oʻtmaganlik haqidagi xabar ataylab umumiy shaklda beriladi — "The request was well-formed but failed validation." — chunki amaliy ahamiyatga ega qismi details ichida joylashgan boʻlib, u maydon nomini va sababini koʻrsatadi. Ikkala modul ham, PHP mijozi ham uni administratoringizga koʻrsatadigan xabarga qoʻshib qoʻyadi. Agar API ga oʻzingiz murojaat qilayotgan boʻlsangiz, error.details ni oʻqing; baʼzi yozuvlar butun jumla oʻrniga faqat oddiy qiymatdan iborat boʻladi, masalan, dilerlik rejangizda joy qolmaganida sizga max_sites: 0 shu tarzda keladi.

Birinchi buyurtmangizdan oldin

Mijozlaringiz sotib oladigan saytlar sizning dilerlik rejangizdagi saytlar limitidan hisoblanadi, shuning uchun sizga boʻsh joyga ega reja kerak boʻladi. Ulanish testi buni aniqlay olmaydi — u dasturingizni oʻqiydi va hech narsa taqdim etmaydi — shu sababli u hali sotuvlarni amalga oshirolmaydigan soz holatdagi hisob haqida xabar beradi. Limitsiz berilgan buyurtma aynan shu haqda xabar beruvchi bildirishnoma bilan rad etiladi.

Yuklab olingan faylni tekshiring

Ikkala arxiv ham bizning oʻz xost nomimizdan TLS orqali uzatiladi, boshqa hech qayerga yoʻnaltirilmaydi va ularning SHA-256 nazorat summalari yuklab olish sahifasidagi yuklab olish havolalari yonida koʻrsatilgan.

Blogdan soʻnggi yangiliklar

Xosting, SEO va saytlarni keng miqyosda yuritish haqida yozganlarimiz.

Xosting qatlamidan SEO va havolalar yaratish: 2026-yilgi operator nigohi

2026-yilda xosting indeksatsiya va havolalar qiymatini (link equity) qanday shakllantiradi: sahifalarni indeksda saqlash, eski domenlarda loyiha boshlashdan oldin ularni tekshirish, hech qanday izsiz (footprint) havola yaratish hamda infratuzilma SEO uchun nimalarni qila olishi va nimalarni qila olmasligi haqida xolis qarash.

Xabarni o‘qish →

WordPress-ni tez va xavfsiz qilish: Unumdorlik va plaginlar nazorat roʻyxati

Tezkor va xavfsiz WordPress uchun amaliy nazorat roʻyxati: server darajasidagi keshlashtirish, har bir sayt uchun obyekt keshi, ishlatishga arziydigan sanoqli plaginlar, dasturiy taʼminotlar toʻplamini yangilab turish va siz hech qachon keshlamasligingiz kerak boʻlgan WooCommerce sahifalari.

Xabarni o‘qish →

2026-yilda boshqariladigan veb-hostingni qanday tanlash kerak: Xaridor qoʻllanmasi

Yaxshi boshqariladigan hostingni boshqaruv paneliga ega arzon serverdan aslida nima ajratib turishi — ko'chirishlar, zaxira nusxalari, izolyatsiya, haqiqiy keshlashtirish va shaffof miqyoslilik — hamda xizmatga obuna bo'lishdan oldin uni qanday baholash mumkinligi haqida.

Xabarni o‘qish →

Blogni oʻqish →

Hali ham muammoga duch kelyapsizmi?

Har bir rejaga qo‘llab-quvvatlash xizmati kiritilgan, yordam markazi kuniga 24 soat ishlaydi va bizga 58 tillarimizning istalganida yozishingiz mumkin — biz sizga o‘z tilingizda javob beramiz.

Qo‘llab-quvvatlash xizmati bilan bog‘lanish → Barcha maqolalar →