Білім базасы

Өз жүйеңізден Zinn® хостингін сату

Өзіңіздің billing panel, WordPress сайты немесе скріпттеріңіз арқылы Zinn hosting қызметін басқарыңыз: API кілтін алып, алғашқы сұрауыңызды жасаңыз және бүкіл интеграция тұратын алты сұрауды орындаңыз.

Сіз біздің хостингті қайта сатасыз. Клиенттеріңіз — өзіңіздікі: бағаларыңыз да, шот-фактураларыңыз да, төлем провайдеріңіз де өзіңіздікі. Сіз біздің платформаны өзіңіз қолданып жүрген жүйеден — биллинг панелінен, өзіңіздің WordPress сайтыңыздан немесе скрипттен осылай басқарасыз.

Клиенттеріңіз шын мәнінде нені көреді

Механикаға көшпес бұрын: клиенттеріңіз бізді ешқашан көрмеуі керек. Үш интерфейс бар, қайсысын қолданатыныңызды өзіңіз таңдайсыз.

| Интерфейс | Кімдікі | |---|---| | Өз хост атыңыздағы хостинг панелі | Qayta satuv → Сіздің брендіңіз бөлімінде панельдің хост атын орнатыңыз, сонда клиенттеріңіз сіздің логотипіңіз бен түстеріңіз бар panel.yourcompany.com мекенжайы арқылы кіреді. Панель сондай, мекенжай сіздікі. | | Өзіңіздің веб-сайтыңыз | WordPress плагині сайтыңызға домендерді іздеу және бір басу арқылы кіру сілтемесін орналастырады, ал тапсырысты өзіңіздің WooCommerce кассаңыз арқылы қабылдайды. | | Сіздің биллинг панеліңіз | WHMCS немесе HostBill негізгі кіру есігі болып қала береді; модуль оның артында қызметті іске қосады, ал клиенттік аймақтағы батырма оларды тікелей өз хостингіне кіргізеді. |

⛔ Қайсысын таңдасаңыз да, клиенттеріңіз үшін ресми сатушы (merchant of record) сіз боласыз: сіздің бағаларыңыз, сіздің шот-фактураларыңыз, сіздің ЖСН/БСН (ҚҚС) нөміріңіз, сіздің төлем провайдеріңіз. Біз сізге айына бір рет көтерме бағамен шот ұсынамыз.

Панельдің хост атын орнатқаннан кейін, оны WordPress плагинінің Panel address өрісіне енгізіңіз және басқа еш жерге жазбаңыз — бұл API арқылы жасалатын кіру сілтемелері оған автоматты түрде өтеді.

Кірудің төрт жолы

Кірудің төрт жолы бар, және олардың барлығы түбінде бірдей нәрсені жасайды:

| | Не үшін | |---|---| | WHMCS модулі | WHMCS дүкені үшін | | HostBill модулі | HostBill дүкені үшін | | WordPress плагині | Өзіңіздің WordPress немесе WooCommerce сайтыңыздан сату үшін | | API | Басқа кез келген нәрсе үшін — Blesta, ішкі жүйе, cron скрипті |

1. API кілтін алыңыз

Басқару панелінде API keys бөліміне өтіп, кілт жасаңыз. Оған тек қажетті рұқсаттарды беріңіз:

| Рұқсат | Не үшін | |---|---| | org.read | Клиенттік аккаунттарыңызды оқу | | sites.create | Сайтты іске қосу (provisioning) | | sites.view | Қызметті оқу | | sites.delete | Жою (terminate) | | reseller.view | Қызметтеріңіздің тізімін қарау және пайдалануды оқу | | reseller.provision | Тоқтата тұру, босату және клиентті жүйеге кіргізу |

Интеграцияға reseller.manage рұқсатын бермеңіз. Бұл рұқсат сіздің бағалар тізіміңізді және өзіңіздің төлем шлюзінің деректерін өзгертеді. reseller.provision дәл биллинг панеліне немесе веб-сайтқа қоятын кілтіңізге бұл рұқсат қажет болмауы үшін жасалған.

Кілт бір-ақ рет көрсетіледі. Оны басқа кіру деректерін сақтайтын жерде сақтаңыз — ешқашан веб-серверіңіз өңдейтін файлда сақтамаңыз.

2. Алғашқы сұранысыңызды жасаңыз

curl https://api.zinndigital.com/v1/reseller/services \
  -H "Authorization: Bearer zdk_live_…"

Бұл сіз іске қосқан әрбір қызметті (әр сайтқа бір жолдан), ол тиесілі клиентті, оның статусын және ол үшін қанша төлем алатыныңызды қайтарады. Жаңа аккаунтта бұл бос тізім болады — бұл қате емес, дұрыс жауап.

3. Бүкіл интеграция, алты сұраныста

ҚАШАН                 СҰРАНЫС
тапсырыс төленгенде   POST   /v1/orgs                                   ӘР КЛИЕНТКЕ бір рет
                     POST   /v1/sites                                  ӘР ҚЫЗМЕТКЕ бір рет
төлемегенде           POST   /v1/reseller/services/{siteId}/suspend
төлегенде             POST   /v1/reseller/services/{siteId}/unsuspend
бас тартқанда         DELETE /v1/sites/{siteId}
"хостингке кіру"      POST   /v1/reseller/services/{siteId}/sso

Іске қосу (provisioning) екі сұраныстан тұрады, және кілттердің маңызы зор:

# 1. клиенттің аккаунты — СІЗДІҢ клиент 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. олардың сайты — СІЗДІҢ қызмет 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"}'

Қателессеңіз қаржылай шығынға ұшырататын екі ереже

  1. Аккаунтты СІЗДІҢ КЛИЕНТІҢІЗГЕ, ал сайтты СІЗДІҢ ҚЫЗМЕТІҢІЗГЕ байлаңыз. Клиенттің екінші тапсырысы оның бұрыннан бар аккаунтына түсуі керек. Екеуін де қызметке байласаңыз, бір клиентте бір-бірімен байланыссыз үш аккаунт пен үш бөлек панель пайда болады.
  2. Әрбір POST сұранысында сол объектіге арналған өз id-іңізден жасалған Idempotency-Key жіберіңіз. Әрбір биллинг жүйесі қайталап сұраныс жібереді — шлюздің қайта шақыруы (callback) екі рет келеді, администратор сәтсіз іске қосуды қайта жүргізеді, клиент батырманы екі рет басады. Кілтсіз екінші әрекет екінші сайтты құрайды және сізге ол үшін шот ұсынылады.

Екіге біріктіруге болмайтын үш жауап

  • unsuspend 409 жауабын қайтаруы мүмкін. Бұл сайтты сіз емес, біздің заңбузушылықтармен күрес тобымыз бұғаттап отырғанын білдіреді. Хабарламаны көрсетіңіз; қайталап сұраныс жібермеңіз.
  • **Жою (terminate) әрекеті жоюды жоспарлайды, оны бірден орындамайды.** Күн 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 батырмасын басыңыз: ол нақты сұраныс жасап, платформаның не жауап бергенін айтады.
  • HostBillincludes/modules/Hosting/zinn/ папкасына көшіріп, дәл солай қосыңыз.
  • WordPressZinn® Reseller Toolkit: домендерді іздеу, клиенттердің хостингіне кіру сілтемесі және тапсырыс төленгенде WooCommerce арқылы іске қосу. Бастапқы коды <https://github.com/Zinn-Digital/zinn-reseller-toolkit> мекенжайында ашық, немесе оны басқару панеліңіздегі Plugins бөлімінен жүктеп алыңыз.

6. Жүйені іске қосыңыз

Нақты тапсырыс қабылдамас бұрын мыналарды тексеріңіз:

  • Модульдегі байланыс тесті сәтті өтті немесе сіздің алғашқы curl сұранысыңыз тізімді қайтарды.
  • Бағалар тізіміңіз орнатылған (Qayta satuv → Сіздің бағаларыңыз).
  • Төлем шлюзіңіз қосылған (Qayta satuv → Төлем шлюздері) — клиенттеріңіз төлемді өзіңіздің аккаунтыңыз арқылы сізге төлейді.
  • Клиенттерге арналған шот-фактураларда біздің емес, сіздің заңды тұлғаңыз бен ЖСН/БСН (ҚҚС) нөміріңіз көрсетілуі үшін компания деректері енгізілген (Qayta satuv → Сіздің компанияңыз).
  • Сіз басынан аяғына дейін бір нақты тапсырыс беріп, сайттың пайда болғанын тексердіңіз.

Басқа ақпараттың барлығы қайда

Анықтамалықтан жасалған, әрбір соңғы нүктесі бар және әрқайсысына қажетті рұқсаттары көрсетілген толық API анықтамалығы <https://zinndigital.com/developers/api> мекенжайында орналасқан.

Әлі де қиындық туып жатыр ма?

Барлық жоспарларға қолдау көрсету және өз тіліңізде жауаптар кіреді.

Қолдау қызметіне хабарласу Барлық мақалалар