Msingi wa maarifa
Uza huduma ya mwenyeji wa Zinn® kupitia HostBill, Blesta, au mfumo wako mwenyewe
Uza huduma ya mwenyeji wa wavuti ya Zinn kupitia HostBill, Blesta au mfumo wako mwenyewe: moduli ya bure ya HostBill, mteja wa PHP wa faili moja, sheria mbili ambazo hugharimu pesa zinapovunjwa, na sehemu mbili za ombi ambazo ni rahisi kuruka.
Ikiwa unatumia WHMCS, tumia moduli ya WHMCS badala yake — ukurasa huu ni kwa ajili ya vitu vingine vyote. Kuna chaguzi mbili, zote ni za bure na zote ni za GPL-2.0-or-later.
HostBill
Moduli ya usimamizi wa tovuti yenye vitendo sita sawa na ile ya WHMCS.
- Ipakue na uifungue (unzip).
- Pakia saraka ya
zinnndani yaincludes/modules/Hosting/ili faili zitue kwenye - Mipangilio → Moduli → Usimamizi wa Tovuti, activatesha Zinn Digital®, na uongeze muunganisho:
includes/modules/Hosting/zinn/class.zinn.php na includes/modules/Hosting/zinn/ZinnHostBillClient.php.
- Anwani ya API:
https://api.zinndigital.com - Ufunguo wa API: ufunguo wako wa API wa Zinn® (uwanja wa
password, ili HostBill iuifadhi ikiwa imesimbwa)
- Kwenye bidhaa weka Laini ya bidhaa (mfano
mainstream), Mkusanyiko (wordpresskwa - Bofya Jaribu muunganisho.
chaguo-msingi), na kwa hiari Programu na Toleo la PHP.
⛔ Usibadilishe jina la saraka ya
zinn. Kipakiaji cha HostBill kinapata darasa inalotafuta kutoka kwa jina la saraka, kwa hivyo kubadilisha jina kunatengeneza moduli ambayo jopo linaorodhesha na haitoi wito kamwe.
Kitu kingine chochote — mteja wa PHP
Faili moja, hakuna utegemezi, hakuna dhana za jopo. Weka ZinnProvisioning.php kwenye mfumo wako wa msimbo na uite mbinu sita.
require_once 'ZinnProvisioning.php';
$zinn = new ZinnProvisioning(getenv('ZINN_API_KEY'));
// Wakati agizo linapolipiwa — mara moja kwa MTEJA, kisha mara moja kwa HUDUMA:
$orgId = $zinn->account('customer-4211', 'Acme Ltd');
$siteId = $zinn->provision('service-9915', $orgId, 'acme.com', 'mainstream', 'wordpress');
// Hifadhi $orgId dhidi ya mteja wako na $siteId dhidi ya huduma yako.
$zinn->suspend($siteId, 'INV-2026-114 unpaid'); // ankara haijalipwa
$zinn->unsuspend($siteId); // wanalipa
$zinn->terminate($siteId); // wanaghairi — inaratibu ufutaji
// Wanapobofya "ingia kwenye hifadhi yangu ya tovuti" — itengeneze wakati wa BOFYA, usifanye wakati wa kuonyesha ukurasa:
header('Location: ' . $zinn->signInLink($siteId));
Huandiki PHP? Wito huo huo upo kwenye Marejeleo ya API na unaweza kuifanya kutoka kwa kitu chochote.
Ufunguo wa API
Ruhusa saba, na hakuna zaidi: org.create, org.read, sites.create, sites.view, sites.delete, reseller.view, reseller.provision.
⛔ Sio
reseller.manage. Ufunguo unaoweka kwenye jopo la malipo unapaswa kuweza kumsimamisha mteja kwa kutolipa na kumuingiza kwenye mfumo; haupaswi kuweza kuandika upya vitambulisho vyako vya lango la malipo.
Sheria mbili zinazogharimu pesa zinapovunjwa
- Weka ufunguo wa akaunti kwa MTEJA wako, na tovuti kwa HUDUMA yako. Agizo la pili la mteja
- Tuma ufunguo wa idempotency kwenye kila uundaji, unaotokana na kitambulisho chako mwenyewe cha kitu hicho. Kila
lazima litue kwenye akaunti aliyo nayo tayari. Weka ufunguo wa zote mbili kwenye huduma na mteja mmoja ataishia kuwa na akaunti tatu zisizohusiana na majopo matatu tofauti ya udhibiti.
mfumo wa malipo unajaribu tena — mrejesho wa lango la malipo unafika mara mbili, msimamizi anarudia utoaji uliofeli, mteja anabofya mara mbili. Bila hiyo, jaribio la pili linatengeneza tovuti ya pili na unatozwa kwayo. Moduli zote mbili na mteja wa PHP zinakufanyia hivi; ikiwa unaita API moja kwa moja, tuma Idempotency-Key.
Nyanja tatu ambazo ni rahisi kuziacha
Kila moja inavunja kitendo kizima, na hakuna inayojitokeza kama kitu kingine chochote zaidi ya kosa la uhakiki — isipokuwa ya kwanza, ambayo inajikokeza kama hakuna kitu kabisa:
- ⛔⛔ Mteja lazima wekwe kwenye mpango KABLA ya tovuti yao ya kwanza kutolewa, ikiwa na
POST /v1/reseller/clients/{orgId}/plan, na subscription_id yake ikipitishwa kwa POST /v1/sites. Hii ndiyo isiyo na kosa la kusoma. Akaunti mpya ya mteja haina usajili na POST /v1/sites haina uwanja wa mpango, kwa hivyo tovuti iliyotolewa bila hiyo haibeba mpango wowote kabisa: taarifa yako ya jumla imejengwa kutoka kwa usajili wa moja kwa moja wa wateja wako, kwa hivyo hakuna mstari unaoinuliwa na Zinn® haukutozi kitu kwa muda wote ambao hifadhi ya tovuti inaendeshwa; mteja wako hairithi posho yoyote, kwa hivyo hakuna kiwango kinachotumiwa kwenye tovuti yao; na hakuna kitu cha kubadilishwa na usasishaji. Agizo linarudisha 201, tovuti inatolewa, na inahudumia kikamilifu. Hakuna kitu katika mwisho wowote kinachoripoti chochote kati ya hivi.
Mlolongo ni muhimu: POST /v1/sites inarekodi usajili wowote uliopo wakati inafanya kazi, kwa hivyo mpango uliowekwa baadaye haujaunganishwa kurejelea nyuma.
POST /v1/sitesinahitajistack_type. Iache na hakuna agizo linaloweza kufanikiwa.- **
DELETE /v1/sites/{siteId}inahitaji mwili `{"confirm_domain": "<the site's own
domain>"}** — uthibitisho uliowekwa chapa, kwa sababu hiki ni kitendo cha uharibifu. Iache na hakuna ughairishaji unaoweza kufanikiwa, kwa hivyo huduma inaendelea kufanya kazi na unaendelea kutozwa kwayo. Soma kikoa nyuma kutoka GET /v1/reseller/services/{siteId}` badala ya kutumia kumbukumbu yako mwenyewe: inalinganishwa na kikoa kuu cha tovuti chenyewe na kamwe hailinganishwi na kiasili.
Soma kosa lote, si sentensi tu
Ujumbe wa kukataa uhakiki kwa makusudi ni wa jumla — "Ombi lilikuwa na umbo zuri lakini limeshindwa kuhakikiwa." — kwa sababu nusu inayowezekana kufanyiwa kazi iko kwenye details, ambayo inataja uwanja na sababu. Moduli zote mbili na mteja wa PHP zinaiongeza kwenye ujumbe zinaonyesha msimamizi wako. Ikiwa unaita API mwenyewe, soma error.details; baadhi ya viingilio vinabeba thamani wazi badala ya sentensi, ambayo ndivyo max_sites: 0 inakufikia wakati mpango wako wa muuzaji mkuu hauna nafasi.
Kabla ya agizo lako la kwanza
Tovuti ambazo wateja wako wananunua zinahesabiwa dhidi ya posho ya tovuti ya mpango wako wa muuzaji mkuu, kwa hivyo unahitaji mpango wenye nafasi ndani yake. Jaribio la muunganisho haliwezi kugundua hili — linasoma programu yako na halitoi kitu — kwa hivyo linaripoti akaunti yenye afya ambayo bado haiwezi kuuza. Agizo lililowekwa bila posho linakataliwa na ujumbe unaosema hivyo hasa.
Hakikisha pakua yako
Kumbukumbu zote mbili zinahudumiwa kwa TLS kutoka kwa jina letu la mwenyeji, hazielekezwi kwingine kabisa, zikiwa na vigezo vyao vya SHA-256 vilivyochapishwa kando ya viungo vya kupakua kwenye ukurasa wa kupakua.
Bado umekwama?
Usaidizi umejumuishwa kwenye kila mpango na majibu yanatolewa kwa lugha yako mwenyewe.
Wasiliana na usaidizi → Makala zote →