Bilik bazası

Zinn® hostinqini HostBill, Blesta və ya öz sisteminizdən satın

Zinn® hostinqini HostBill, Blesta və ya öz sisteminizdən satın: pulsuz HostBill modulu, tək fayllı PHP müştərisi, pozulduqda maliyyə itkisinə səbəb olan iki qayda və nəzərdən qaçırılması asan olan iki sorğu sahəsi.

Əgər WHMCS istifadə edirsinizsə, bunun əvəzinə WHMCS modulundan istifadə edin — bu səhifə qalan hər şey üçündür. İki seçim var, hər ikisi pulsuzdur və hər ikisi GPL-2.0-or-later lisenziyalıdır.

HostBill

WHMCS modulu ilə eyni altı əməliyyata malik hostinq modulu.

  1. Onu endirin və arxivdən çıxarın.
  2. Faylların includes/modules/Hosting/zinn/class.zinn.php və includes/modules/Hosting/zinn/ZinnHostBillClient.php ünvanlarına yerləşməsi üçün zinn qovluğunu includes/modules/Hosting/ içinə yükləyin.
  3. Settings → Modules → Hosting bölməsinə keçin, Zinn Digital® modulunu aktivləşdirin və bağlantı əlavə edin:
  • API address: https://api.zinndigital.com
  • API key: Zinn® API açarınız (password sahəsidir, ona görə də HostBill onu şifrələnmiş şəkildə saxlayır)
  1. Məhsul üzərində Product line (məsələn, mainstream), Stack (standart olaraq wordpress) və istəyə bağlı olaraq Application və PHP version təyin edin.
  2. Test connection düyməsini sıxın.

⛔ zinn qovluğunun adını dəyişməyin. HostBill-in yükləyicisi axtardığı sinfi qovluq adından əldə edir, buna görə də adı dəyişdirmək panelin siyahıya aldığı, lakin heç vaxt çağırmadığı bir modul yaradır.

Başqa hər şey — PHP müştərisi

Bir fayl, heç bir asılılıq yoxdur, panel tələbləri yoxdur. ZinnProvisioning.php faylını öz kod bazanıza əlavə edin və altı metodu çağırın.

require_once 'ZinnProvisioning.php';

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

// When an order is paid — once per CUSTOMER, then once per SERVICE:
$orgId  = $zinn->account('customer-4211', 'Acme Ltd');
$siteId = $zinn->provision('service-9915', $orgId, 'acme.com', 'mainstream', 'wordpress');
// Store $orgId against your customer and $siteId against your service.

$zinn->suspend($siteId, 'INV-2026-114 unpaid');   // an invoice goes unpaid
$zinn->unsuspend($siteId);                        // they pay
$zinn->terminate($siteId);                        // they cancel — schedules a deletion

// When they click "log in to my hosting" — mint it on the CLICK, never on page render:
header('Location: ' . $zinn->signInLink($siteId));

PHP yazmırsınız? Eyni çağırışlar API soraqçasında mövcuddur və siz onları istənilən mühitdən icra edə bilərsiniz.

API açarı

Yeddi icazə və artıq heç nə: org.create, org.read, sites.create, sites.view, sites.delete, reseller.view, reseller.provision.

⛔ reseller.manage deyil. Faktura panelinə daxil etdiyiniz açar ödəniş edilmədikdə müştərini dayandıra və sistemə daxil edə bilməlidir; o, sizin şəxsi ödəniş şlüzü məlumatlarınızı yenidən yaza bilməməlidir.

Pozulduqda xərc yaradan iki qayda

  1. Hesabı MÜŞTƏRİNİZƏ, saytı isə XİDMƏTİNİZƏ bağlayın. Müştərinin ikinci sifarişi artıq sahib olduğu hesaba daxil olmalıdır. Hər ikisini xidmətə bağlasanız, bir müştəri üç əlaqəsiz hesaba və üç ayrı idarəetmə panelinə sahib olacaqdır.
  2. Hər yaradılma zamanı obyekt üçün öz identifikatordan əldə edilmiş idempotensiya açarı göndərin. Hər bir faktura sistemi yenidən cəhd edir — şlüz geri çağırışı iki dəfə gəlir, administrator uğursuz təminatı yenidən icra edir, müştəri iki dəfə klikləyir. Bu olmadan, ikinci cəhd ikinci bir sayt yaradır və buna görə sizdən ödəniş tutulur. Hər iki modul və PHP müştərisi bunu sizin üçün yerinə yetirir; əgər API-ni birbaşa çağırırsınızsa, Idempotency-Key göndərin.

Buraxılması asan olan üç sahə

Hər biri bütöv bir əməliyyatı sıradan çıxarır və birincidən başqa heç biri doğrulama xətası kimi görünmür — birinci isə ümumiyyətlə heç nə kimi görünür:

  • ⛔⛔ Müştərinin ilk saytı təmin edilməzdən ƏVVƏL o, bir plana daxil edilməlidir, bu POST /v1/reseller/clients/{orgId}/plan ilə icra olunur və onun subscription_id parametri POST /v1/sites sorğusuna ötürülür. Bu, oxunacaq heç bir xətası olmayan haldır. Yeni müştəri hesabı heç bir abunəliyə malik deyil və POST /v1/sites sorğusunda plan sahəsi yoxdur, buna görə də plansız təmin edilən sayt ümumiyyətlə heç bir plan daşımır: topdansatış çıxarışınız müştərilərinizin aktiv abunəlikləri əsasında tərtib edilir, beləliklə heç bir sətir əlavə edilmir və hostinq işlədiyi müddətcə Zinn® sizdən heç bir ödəniş tələb etmir; müştəriniz heç bir limit əldə etmir, buna görə də onların saytına heç bir kvota tətbiq olunmur; və təkmilləşdirmənin dəyişdirə biləcəyi heç bir şey yoxdur. Sifariş 201 qaytarır, sayt təmin edilir və mükəmməl şəkildə fəaliyyət göstərir. Hər iki tərəfdə heç nə bunlardan heç birini bildirmir.

Ardıcıllıq vacibdir: POST /v1/sites icra olunduğu anda mövcud olan istənilən abunəliyi qeydə alır, buna görə də sonradan təyin edilmiş plan geriyə qüvvə ilə tətbiq edilmir.

  • POST /v1/sites stack_type tələb edir. Bunu ötürün və heç bir sifariş uğurlu ola bilməz.
  • DELETE /v1/sites/{siteId} {"confirm_domain": "<the site's own domain>"} gövdəsini tələb edir — bu, dağıdıcı fel olduğu üçün daxil edilmiş bir təsdiqdir. Bunu ötürün və heç bir ləğvetmə uğurlu ola bilməz, nəticədə xidmət işləməyə davam edər və sizdən onun üçün ödəniş tutulmağa davam edər. Öz qeydinizdən istifadə etmək əvəzinə domeni GET /v1/reseller/services/{siteId} sorğusundan oxuyun: o, heç vaxt ləqəblə deyil, saytın öz ilkin domeni ilə müqayisə edilir.

Təkcə cümləni deyil, bütün xətanı oxuyun

Doğrulama imtinası mesajı qəsdən ümumidir — "Sorğu düzgün tərtib edilmişdi, lakin doğrulama uğursuz oldu." — çünki fəaliyyət tələb edən hissə sahəni və səbəbini göstərən details daxilindədir. Həm modullar, həm də PHP müştərisi bunu inzibatçınıza göstərdikləri mesaja əlavə edir. Əgər API-ni özünüz çağırırsınızsa, error.details hissəsini oxuyun; bəzi qeydlər cümlə deyil, sadə bir dəyər daşıyır və satıcı planınızda yer olmadıqda max_sites: 0 sizə bu şəkildə çatır.

İlk sifarişinizdən əvvəl

Müştərilərinizin aldığı saytlar sizin satıcı planınızın sayt limitinə daxil edilir, buna görə də içində yeri olan bir plana ehtiyacınız var. Əlaqə testi bunu aşkar edə bilməz — o, proqramınızı oxuyur və heç nə təmin etmir — beləliklə, hələ sata bilməyən saz bir hesab barədə məlumat verir. Limit olmadan verilən sifariş məhz bunu bildirən bir mesajla rədd edilir.

Yükləmənizi yoxlayın

Hər iki arxiv heç vaxt başqa yerə yönləndirilmədən, birbaşa öz host adımızdan TLS vasitəsilə təqdim olunur və onların SHA-256 yoxlama cəmləri yükləmələr səhifəsindəki yükləmə bağlantılarının yanında göstərilir.

Bloqdan ən son yazılar

Hostinq, SEO və saytların geniş miqyasda idarə edilməsi haqqında yazdıqlarımız.

Hostinq təbəqəsindən SEO və link quruculuğu: 2026-cı il operatorunun baxışı

2026-cı ildə hostinqin indeksləşdirməyə və link dəyərinə təsiri: səhifələrin indeksdə qalması, üzərində sayt qurmazdan əvvəl köhnə domenlərin yoxlanılması, iz qoymadan link quruculuğu və infrastrukturun SEO üçün nəyi edə bilib, nəyi edə bilməyəcəyinə dair səmimi yanaşma.

Yazını oxuyun →

WordPress-i Sürətli və Təhlükəsiz Etmək: Performans və Qoşma Yoxlama Siyahısı

Sürətli və təhlükəsiz WordPress üçün praktik yoxlama siyahısı: server səviyyəsində keşləmə, hər sayt üçün obyekt keşi, istifadəyə dəyər bir neçə plagin, proqram təminatı paketini aktual saxlamaq və heç vaxt keşləməməli olduğunuz WooCommerce səhifələri.

Yazını oxuyun →

2026-cı ildə İdarə Olunan Veb Hostinqi Necə Seçməli: Alıcı Bələdçisi

Yaxşı idarə olunan hostinqi idarəetmə paneli olan ucuz bir qutudan həqiqətən nə fərqləndirir — miqrasiyalar, nüsxələmə, təcrid, real keşləmə və dürüst miqyaslama — və qərar verməzdən əvvəl onu necə qiymətləndirməli.

Yazını oxuyun →

Bloqu oxuyun →

Hələ də ilişib qalmısınız?

Dəstək hər bir plana daxildir, yardım masası gündə 24 saat açıqdır və siz bizə 58 dildən istənilən birində yaza bilərsiniz — biz sizə sizin dilinizdə cavab veririk.

Dəstəklə əlaqə saxlayın → Bütün məqalələr →