Сіз біздің хостингті қайта сатасыз. Клиенттеріңіз — өз клиенттеріңіз: сіздің бағаларыңыз, сіздің шот-фактураларыңыз, сіздің төлем провайдеріңіз. Сіз қазір қолданып жүрген жүйеңізден — биллинг панелінен, өзіңіздің WordPress сайтыңыздан немесе скрипттен — платформамызды осылай басқарасыз.
Клиенттеріңіз шын мәнінде нені көреді
Механизмге кіріспес бұрын: клиенттеріңіз бізді ешқашан көрмеуі керек. Үш нұсқа бар, және олардың қайсысын қолданатыныңызды өзіңіз таңдайсыз.
| Бет | Кімге тиесілі |
|---|
| Өз хост атыңыздағы хостинг панелі | Reselling → Your brand бөлімінде панель хост атын орнатыңыз, сонда клиенттеріңіз сіздің логотипіңізбен және түстеріңізбен panel.yourcompany.com мекенжайында кіреді. Панель сол баяғы, бірақ мекенжай сіздікі. |
| Өз веб-сайтыңыз | WordPress плагині сайтыңызға домен іздеуді және бір рет басу арқылы кіру сілтемесін орналастырады, сондай-ақ тапсырысты өзіңіздің WooCommerce кассаңыз арқылы қабылдайды. |
| Сіздің биллинг панеліңіз | WHMCS немесе HostBill негізгі кіреберіс ретінде қалады; модуль оның артында қамтамасыз етеді (provision), ал клиент аймағындағы батырма оларды тікелей өз хостингіне кіргізеді. |
⛔ Қайсысын таңдасаңыз да, сіз клиенттеріңіз үшін ресми сатушы (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 | Сайт ашу (provision) |
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"}'
Қателессеңіз, ақшаңызды шығындайтын екі ереже
- Аккаунтты ТҰТЫНУШЫҢЫЗҒА, ал сайтты ҚЫЗМЕТІҢІЗГЕ байлаңыз. Тұтынушының екінші тапсырысы оның бар аккаунтына түсуі керек. Екеуін де қызметке байласаңыз, бір тұтынушы бір-біріне байланысы жоқ үш аккаунт пен үш бөлек панельге ие болады.
- Әрбір
POST сұрауында сол нысан үшін өзіңіздің id негізінде құрылған Idempotency-Key жіберіңіз. Әрбір биллинг жүйесі сұрауды қайталайды — шлюз кері шақыруы екі рет келеді, әкімші сәтсіз орналастыруды қайта іске қосады, тұтынушы батырманы екі рет басады. Кілт болмаса, екінші әрекет екінші сайт жасайды және сізден оның ақысы алынады.
Екіге біріктіруге болмайтын үш жауап
unsuspend сұрауы 409 қайтаруы мүмкін. Бұл сайтты сіз емес, біздің қауіпсіздік бөліміміз (abuse team) бұғаттағанын білдіреді. Хабарламаны көрсетіңіз; оны қайталап орындамаңыз.
- **Тоқтату (terminating) жоюды жоспарлайды, оны бірден орындамайды.** Күн
pending_deletion_at ретінде қайтарылады. Тұтынушыға оның деректері әлі жойылмаған кезде жойылды деп айту ештеңе айтпағаннан да жаман.
disk_used_bytes мәні null болуы мүмкін, ал null нөл емес. Бұл ештеңе пайдаланылмағанын емес, өлшей алмағанымызды білдіреді. Оны өткізіп жіберіңіз — өз жазбаларыңызға 0 деп жазбаңыз, әйтпесе деректері жоқ сайт үшін тұтынушыға жасыл пайдалану индикаторын көрсетесіз.
4. Клиентті жүйеге кіргізу
POST /v1/reseller/services/{siteId}/sso сіздің клиентіңізді тікелей жүйеге кірген күйінде өз аккаунтына апаратын бір реттік URL мекенжайын қайтарады.
⛔ Оны бетті шығарғанда (render) емес, олар батырманы басқан кезде ғана жасаңыз. Сілтеме бір реттік және бірнеше минут ішінде мерзімі өтеді, сондықтан бетке жазылған сілтеме бетті бірінші рет ашқанда жанып кетеді де, сіз бен браузер арасындағы барлық кэште қалып қояды.
5. Оның орнына модуль орнатыңыз
- WHMCS — модульді
modules/servers/zinn/ ішіне көшіріңіз, Password өрісі сіздің API кілтіңіз болатын сервер қосыңыз және өнімде өнім желісін орнатыңыз. Test Connection түймесін басыңыз: ол нақты сұрау жасап, платформаның не жауап бергенін айтады.
- HostBill —
includes/modules/Hosting/zinn/ ішіне көшіріп, дәл солай қосыңыз.
- WordPress — Zinn® Reseller Toolkit: домен іздеу, клиенттеріңіздің хостингіне кіру сілтемесі және тапсырыс төленген кезде WooCommerce арқылы қамтамасыз ету (provisioning). Бастапқы коды мына жерде қолжетімді: <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, немесе оны басқару панеліңіздегі Plugins бөлімінен жүктеп алыңыз.
6. Жүйені іске қосыңыз
Нақты тапсырысты қабылдамас бұрын мыналарды тексеріңіз:
- Модульдегі байланыс тексеруі сәтті өтті немесе алғашқы
curl сұрауыңыз тізімді қайтарады.
- Бағалар тізіміңіз орнатылған (Reselling → Your prices).
- Төлем шлюзіңіз қосылған (Reselling → Payment gateways) — клиенттеріңіз төлемді өзіңіздің шотыңыз арқылы сізге төлейді.
- Клиенттеріңіздің шот-фактураларында біздің емес, сіздің заңды тұлғаңыз бен ҚҚС нөміріңіз көрсетілуі үшін компания деректері енгізілген (Reselling → Your company).
- Сіз басынан аяғына дейін бір нақты тапсырыс беріп, сайттың пайда болғанын көрдіңіз.
Қалған барлық ақпарат қайда
Біздің сипаттамамыздан жасалған, әрқайсысына қажетті рұқсаттары бар толық API анықтамалығы (әрбір соңғы нүктемен бірге) мына мекенжайда: <https://zinndigital.com/developers/api>.