Препродајете наш хостинг. Ваши клијенти су ваши: ваше цене, ваше фактуре, ваш процесор плаћања. Овако управљате нашом платформом из било чега што већ користите — наплатног панела, сопственог WordPress сајта или скрипте.
Шта ваши клијенти заправо виде
Пре техничких детаља: ваши клијенти никада не морају да нас виде. Постоје три површине, а ви бирате коју користите.
| Површина | Чија је | |---|---| | Хостинг панел, на вашем сопственом називу хоста | Поставите назив хоста за панел под Препродаја → Ваш бренд и ваши клијенти се пријављују на panel.yourcompany.com са вашим логотипом и вашим бојама. Исти панел, ваша адреса. | | Ваш сопствени веб-сајт | WordPress прикључак поставља претрагу домена и везу за пријаву једним кликом на ваш сајт, и преузима поруџбину преко ваше сопствене WooCommerce наплате. | | Ваш наплатни панел | WHMCS или HostBill остају главна врата; модул врши опремање у позадини, а дугме у корисничкој зони пријављује их директно на њихов хостинг. |
⛔ Коју год опцију да одаберете, ви сте званични трговац за ваше клијенте: ваше цене, ваше фактуре, ваш ПИБ, ваш процесор плаћања. Ми наплаћујемо вама, једном месечно, по велепродајним ценама.
Када поставите назив хоста за панел, унесите га у поље Адреса панела у WordPress прикључку и ни у шта друго — везе за пријаву које овај API прави аутоматски га прате.
Четири начина приступа
Постоје четири начина приступа, и сви они у основи раде исту ствар:
| | За | |---|---| | WHMCS модул | WHMCS продавницу | | HostBill модул | HostBill продавницу | | WordPress прикључак | Продају са вашег сопственог WordPress или WooCommerce сајта | | API | Све остало — Blesta, интерни систем, cron скрипту |
1. Преузмите API кључ
На својој контролној табли идите на API кључеви и креирајте један. Доделите му само оно што му је потребно:
| Дозвола | Разлог | |---|---| | org.read | Читање налога ваших клијената | | sites.create | Опремање сајта | | sites.view | Читање услуге | | sites.delete | Терминирање | | 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
Опремање чине два позива, и кључеви су важни:
# 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"}'
Два правила која коштају када се погреше
- Вежите налог за вашег КЛИЈЕНТА, а сајт за вашу УСЛУГУ. Друга поруџбина клијента мора припасти налогу који већ има. Ако оба вежете за услугу, један клијент ће завршити са три неповезана налога и три засебна панела.
- Шаљите
Idempotency-Key при сваком POST позиву, изграђен од вашег сопственог идентификатора за ту ставку. Сваки наплатни систем понавља захтеве — повратни позив са платног пролаза стигне двапут, администратор поново покрене неуспело опремање, клијент кликне два пута. Без кључа, други покушај ствара други сајт и то се вама фактурише.
Три одговора која не смете свести на два
unsuspend може одговорити са 409. То значи да наш тим за злоупотребе задржава сајт, а не ви. Прикажите поруку; не понављајте покушај.
- **Терминирање заказује брисање, не извршава га одмах.** Датум се враћа као
pending_deletion_at. Рећи клијенту да су његови подаци већ обрисани када нису, горе је него не рећи му ништа.
disk_used_bytes може бити null, а null није нула. То значи да нисмо могли да измеримо, а не да ништа није коришћено. Прескочите то — не уписујте 0 у своје евиденције, или ћете клијенту приказати зелену траку искоришћености за сајт за који немате очитавање.
4. Пријављивање клијента
POST /v1/reseller/services/{siteId}/sso враћа URL за једнократну употребу који вашег клијента директно уводи у његов сопствени налог, већ пријављеног.
⛔ Генеришите га када кликну, никада када рендерујете страницу. Веза је за једнократну употребу и истиче за неколико минута, па ће веза уписана у страницу бити искоришћена при првом приказу странице и остати у свакој кеш меморији између вас и прегледача.
5. Инсталирајте модул уместо тога
- WHMCS — копирајте модул у
modules/servers/zinn/, додајте сервер чија је Лозинка ваш API кључ и поставите линију производа на производу. Притисните Тестирај везу: то обавља прави позив и обавештава вас шта је платформа одговорила.
- HostBill — копирајте у
includes/modules/Hosting/zinn/ и повежите га на исти начин.
- WordPress — Zinn® Reseller Toolkit: претрага домена, веза за пријаву на хостинг ваших клијената и WooCommerce опремање када је поруџбина плаћена. Отвореног кода на <https://github.com/Zinn-Digital/zinn-reseller-toolkit>, или преузмите из одељка Прикључци на вашој контролној табли.
6. Пуштање у рад
Проверите следеће пре него што примите праву поруџбину:
- Тест повезивања пролази на модулу, или ваша прва
curl команда враћа листу.
- Ваш ценовник је подешен (Препродаја → Ваше цене).
- Ваш платни пролаз је повезан (Препродаја → Платни пролази) — ваши клијенти плаћају вама, преко вашег сопственог налога.
- Подаци о вашој компанији су унети (Препродаја → Ваша компанија) како би фактуре ваших клијената садржале податке о вашем правном лицу и ваш ПИБ, а не наше.
- Извршили сте једну праву поруџбину од почетка до краја и испратили појављивање сајта.
Где се налази све остало
Комплетна API референца — свака крајња тачка, генерисана из наше спецификације, са дозволом која је свакој потребна — налази се на <https://zinndigital.com/developers/api>.