База знания

Продавайте хостинг от Zinn® през WHMCS

Инсталирайте безплатния модул за предоставяне на услуги на Zinn Digital в WHMCS: API ключа и седемте разрешения, от които се нуждае, къде трябва да поставите директорията на модула и защо името ѝ е от значение, полетата за продукти и какво всъщност прави всеки бутон в WHMCS.

Модулът Zinn Digital® превръща собствените бутони на WHMCS в реални действия на нашата платформа. Поръчката осигурява хостинга на вашия клиент. Автоматизацията на WHMCS за просрочени фактури го суспендира. Отбелязването на фактурата като платена го активира отново. Анулирането насрочва изтриването. А вашият клиент получава бутон Вход в хостинг панела в своя клиентски раздел, който го взима директно.

Той е безплатен, с лиценз GPL-2.0-or-later и няма привилегирован път към нашата платформа: всяко изкълчване, което прави, е документиран краен пункт, който бихте могли да направите сами със собствен API ключ.

Преди да започнете

Трябват ви две неща, като второто изненадва хората.

  1. Реселърски акаунт в Zinn® с активна програма. Регистрирайте се на
  2. zinndigital.com и включете реселърството.

  3. Реселърски план с лимит за сайтове. Сайтовете, които вашите клиенти поръчват, се приспадат от вашия план, така че ви е необходим такъв със свобоно пространство.

⚠️ Тестването на връзката не може да ви каже дали дадена поръчка ще бъде успешна. То прочита вашата програма и нищо не осигурява, така че докладва здрав 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. Инсталиране на модула

  1. Изтеглете модула и го разархивирайте.
  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.

Все още изпитвате затруднения?

Поддръжката е включена във всеки план с отговори на вашия собствен език.

Свържете се с поддръжката Всички статии
Продавайте хостинг от Zinn® през WHMCS