База знания
Продавайте хостинг от Zinn® през WHMCS
Инсталирайте безплатния модул за предоставяне на услуги на Zinn Digital в WHMCS: API ключа и седемте разрешения, от които се нуждае, къде трябва да поставите директорията на модула и защо името ѝ е от значение, полетата за продукти и какво всъщност прави всеки бутон в WHMCS.
Модулът Zinn Digital® превръща собствените бутони на WHMCS в реални действия на нашата платформа. Поръчката осигурява хостинга на вашия клиент. Автоматизацията на WHMCS за просрочени фактури го суспендира. Отбелязването на фактурата като платена го активира отново. Анулирането насрочва изтриването. А вашият клиент получава бутон Вход в хостинг панела в своя клиентски раздел, който го взима директно.
Той е безплатен, с лиценз GPL-2.0-or-later и няма привилегирован път към нашата платформа: всяко изкълчване, което прави, е документиран краен пункт, който бихте могли да направите сами със собствен API ключ.
Преди да започнете
Трябват ви две неща, като второто изненадва хората.
- Реселърски акаунт в Zinn® с активна програма. Регистрирайте се на
- Реселърски план с лимит за сайтове. Сайтовете, които вашите клиенти поръчват, се приспадат от вашия план, така че ви е необходим такъв със свобоно пространство.
zinndigital.com и включете реселърството.
⚠️ Тестването на връзката не може да ви каже дали дадена поръчка ще бъде успешна. То прочита вашата програма и нищо не осигурява, така че докладва здрав
activeакаунт, който все още не може да продава нищо. Ако първата ви поръчка е неуспешна със съобщение "Тази организация няма хостинг план, затова все още не може да хоства сайт", това се е случило — купете или разширете своя реселърски план и направете поръчката отново. С модула няма проблем.
1. Създаване на API ключа
В таблото си за управление в Zinn® отворете API ключове и създайте ключ с точно тези единадесет разрешения:
| Разрешение | Защо е необходимо | | -------------------- | ----------------------------------------------------------- | | org.create | Отваряне на Zinn® акаунта на клиента при първата им поръчка. | | org.read | Четене на клиентските акаунти. | | sites.create | Осигуряване на сайта. | | sites.view | Четене на услуга и нейното използване. | | sites.delete | Прекратяване. | | reseller.view | Изброяване на продаденото и четене на дисково пространство и честотна лента. | | reseller.provision | Суспендиране, активиране, влизане на клиент, задаване на план и промяна на пакет. | | billing.view | Четене на цената на надграждане преди извършването му. | | sites.manage | Изчистване на кеша и правене на резервно копие от бутоните. | | sites.panel_access | Промяна на паролата на администратора на WordPress. | | hosting.php.manage | Превключване на PHP версия при надграждане или понижаване. |
⛔ Не предоставяйте
reseller.manage. Ключ, поставен в панел за фактуриране, трябва да може да задържи клиент при липса на плащане и да го впише. Той не трябва да може да чете и презаписва вашите собствени идентификационни данни за платежния шлюз.reseller.provisionсъществува, за да не се налага да предоставяте по-голямото разрешение. ⛔org.createне е опционално. Без него модулът може да чете акаунтите ви, но не може да отвори нов, така че тестът на връзката минава, а първата поръчка отговаря с403. ⛔⛔ Предоставете цялата таблица и имайте предвид, че тестването на връзката не може да ви каже, ако не сте го направили. То прочита вашата реселърска програма и нищо не осигурява, така че дава зелена светлина за ключ, на който липсва кое да е от тези неща. Вместо това получавате403за конкретната операция, покривана от липсващото разрешение, месеци по-късно, от страна на клиент.
2. Инсталиране на модула
- Изтеглете модула и го разархивирайте.
- Качете директорията
zinnвъв вашата инсталация на WHMCS, така че файлът на модула да попадне вmodules/servers/zinn/zinn.php.
⛔ Директорията трябва да се казва
zinn. WHMCS извлича имената на функциите на провизиониращия модул от името на неговата директория, така че преименуването му наzinn-whmcsилиzinndigitalводи до създаване на модул, който WHMCS показва, позволява ви да изберете, но никога не извиква — без грешка никъде. Архивът вече се разархивира с правилното име; просто не го преименувайте.
3. Добавяне на сървъра
В WHMCS: Конфигурация → Системни настройки → Сървъри → Добавяне на нов сървър.
- Име: каквото и да е, напр.
Zinn Digital® - Име на хост:
api.zinndigital.com - Тип:
Zinn Digital® - Парола: вашия API ключ от стъпка 1
⛔ Ключът се поставя в полето Парола, което WHMCS съхранява криптирано. Не го поставяйте в опция за конфигурация на продукт — те са в текстов вид в базата данни и са видими за всеки администратор, а тези идентификационни данни могат да създават и унищожават хостинга на вашите клиенти.
Натиснете Тестване на връзката. Това прави реално извикване и докладва какво е казала нашата платформа, вместо просто да проверява дали полетата са попълнени.
4. Създаване на продукта
Конфигурация → Системни настройки → Продукти/Услуги, след което задайте Настройки на модула на току-що добавения сървър. Полетата са:
| Поле | Изисква се | Какво представлява | | ---------------- | ---------- | -------------------------------------------------------------------------- | | Продуктова линия | да | Линията на Zinn®, която продавате — mainstream (управляем WordPress), footprint_free, wordpress, linux, cloud, agency, app_hosting, ai_hosting, lms_hosting, managed_database, vector_hosting, zinn_compute, fleet_linux, fleet_enterprise, mail или reseller. | | Стек | да | Какво се изгражда: wordpress (по подразбиране), woocommerce, php, static, node, one_click, headless_cms, nextcloud или owncloud. | | Приложение | не | Само за стековете one_click и headless_cms — кое приложение да се инсталира. Назоваването на приложение за друг стек се отказва, тъй като този стек вече определя какво се инсталира. | | PHP версия | не | напр. 8.3. Оставете празно за версията по подразбиране на линията. Версия, която линията не предлага, се отказва със списък на предлаганите такива. | | Код на плана | да | Планът на Zinn®, който този продукт продава. GET /v1/reseller/prices изброява вашите. Поръчка без него се отказва — вижте предупреждението по-долу. | | Интервал за фактуриране | не | monthly (по подразбиране) или annual — интервалът, на който се таксува вашата едрова линия за този клиент. Това, което таксувате на собствения си клиент, се задава в продукта на WHMCS и не се променя. |
⛔⛔ Кодът на плана е задължителен и поръчка без него се отказва нарочно. До 2026-09-01 полето беше декоративно и нищо не го четеше, така че модулът поръчваше хостинг, който нямаше никакъв план — и всяка последица от това беше безшумна. Извлечението ви на едро се изгражда от активните абонаменти на вашите клиенти, така че нямаше ред за услугата и не ви беше фактурирано нищо, докато тя работеше; вашият клиент не наследи никакви лимити, така че на неговия сайт не беше приложена квота за дисково пространство или файлове; и Промяната на пакета нямаше какво да променя, така че надграждането, което сте продали, не можеше да бъде извършено. Сайтът се провизираше и обслужваше перфектно през цялото време.
Сега модулът вместо това отказва поръчката, тъй като няма безопасен план, който да отгатне: едно предположение би осигурило хостинг по план, който не сте избрали и може да не сте оценели, и — за разлика от отказ, който прочитате веднага — той ще излезе наяве само когато пристигне извлечение, ако изобщо се случи.
Задайте Автоматична настройка според предпочитанията си — модулът е идепотентен спрямо идентификатора на услугата в WHMCS, така че повтореният опит за провизиране връща същия сайт, вместо да ви таксува за втори път.
Какво прави всяко действие в WHMCS
| Действие в WHMCS | Какво се случва от наша страна | | --------------------------- | ---------------------------------------------------------------------------------------- | | Създаване | Създава клиентския Zinn® акаунт (или използва повторно съществуващия) и провизира сайта им. | | Суспендиране | Поставя сайта на задържане поради неплащане. Съдържанието се запазва; нищо не се изтрива. | | Отмяна на суспендирането | Премахва вашето задържане. | | Прекратяване | Насрочва изтриването на сайта с разумен период на изчакване. Датата се показва в клиентския раздел. | | Актуализация на използването | Освежава дисковото пространство и честотната лента за всяка услуга веднъж на ден. | | Вход в хостинг панела | Отваря еднократна връзка за влизане директно в панела на вашия клиент. | | Промяна на пакета | Надгражда или понижава услугата. Премества пакета и PHP версията, ако новият продукт указва такава. | | Промяна на парола | Задава паролата на администратора на WordPress. Полетът не се появява за стекове, които нямат такъв акаунт. | | Подновяване | Потвърждава, че услугата все още съществува. Хостингът в Zinn® е непрекъснат, така че няма отдалечен срок за удължаване. | | Синхронизиране на използването / Изчистване на кеша / Правене на резервно копие | Бутони на страницата за административни услуги. Вашият клиент получава „Изчистване на кеша“ и „Правене на резервно копие“ в своя клиентски раздел. | | Раздел Услуга | Статус, план, диск, честотна лента, насрочено изтриване и кой е наложил суспендиране. | | Импортиране | ListAccounts прочита всяка страница, така че импортирането не може да спре тихо на първата. |
Надграждания: кой кого таксува
Вашият клиент никога не се фактурира от Zinn® при поръчка или надграждане. Вие го таксувате чрез WHMCS; ние таксуваме вас във вашето извлечение на едро. Така че промяната на пакета премества правата на вашия клиент и реда в следващото ви извлечение и не докосва никоя карта — WHMCS вече е взела парите на вашия клиент и е изчислила собственото си разпределение.
Втора услуга на клиент. При същия план това е друг сайт в рамките на лимита за сайтове на този план и нищо повече не се предоставя. При различен план се отказва: замяната на активния план би оставила една от двете услуги нефактурирана. Или продайте и двете на един и същ план, или настройте клиента като отделен клиентски запис в WHMCS.
Промяната на парола съществува само за WordPress. Хостингът в Zinn® няма една единствена „парола за услуга“ — вашият клиент достига до панела си с бутона за вход — а сайт с php или static няма приложен акаунт за промяна. WHMCS скрива полето изцяло, вместо да показва такова, което не може да работи.
Три отговора, които не трябва да се обединяват в два
- Отмяната на суспендирането може да отговори с отказ. Това означава, че сайтът е бил суспендиран от нашия екип по злоупотреби, а не от вас, и никой панел за фактуриране не може да го освободи. Съобщението казва това; покажете го на администратора си, вместо да опитвате отново.
- Прекратяването насрочва изтриване, то не извършва такова. Датата се връща като
pending_deletion_atи клиентският раздел я показва. Да кажете на клиента, че данните му вече са изчезнали, когато не са, е по-лошо от това да не му кажете нищо. - Дискът и честотната лента може да са неизвестни, а неизвестното не е нула. Когато не сме могли да вземем отчитане, модулът оставя цифрата непроменена, вместо да запише
0— в противен случай WHMCS ще покаже на вашия клиент успокояваща празна лента за използване за сайт, от който нямаме отчитане.
Отстраняване на неизправности
Тестването на връзката минава, а първата поръчка се проваля с грешка в разрешенията. В API ключа липсва org.create. Модулът трябва да отвори акаунта на клиента, преди да може да създаде неговия сайт.
Поръчката е неуспешна с твърдението, че организацията няма хостинг план. Вашият реселърски план няма останал лимит за сайтове или все още нямате такъв. Вижте Преди да започнете по-горе.
Поръчката се проваля с отбелязване на стек. Полетът Стек на продукта е празен или посочва нещо, което не изграждаме. Задайте го на wordpress, освен ако не продавате нещо друго.
Анулиранията се провалят. Уверете се, че използвате модул с версия 1.0.0 или по-нова. По-ранните сборки не изпращаха потвърждение за изтриване и всяко прекратяване беше отказвано, което оставяше услугата работеща и таксуваща.
Отказ, който посочва поле.
Нашите грешки при валидиране посочват полето и причината в скоби след съобщението, напр. (php_version: 7.2 is not offered on this product line). Това е действената половина — изречението пред нея е нарочно общо.
Проверете вашето изтегляне
Всеки архив се предоставя чрез TLS от собствения ни хост име и никога не се пренасочва към хост на трета страна. Неговата SHA-256 сума е отпечатана до връзката за изтегляне на страницата за изтегляне. Сравнете я след изтегляне:
- macOS или Linux:
shasum -a 256 zinn-whmcs-1.0.0.zip - Windows:
certutil -hashfile zinn-whmcs-1.0.0.zip SHA256
Не използвате WHMCS?
Има модул за HostBill и еднофайлов PHP клиент за всичко останало, и двата безплатни и на същата страница за изтегляне. Всеки краен пункт, използван от модулите, е в справочника за API.
Все още изпитвате затруднения?
Поддръжката е включена във всеки план с отговори на вашия собствен език.
Свържете се с поддръжката → Всички статии →