Модуль WHMCS
Модуль связывает WHMCS с панелью: WHMCS продаёт игровые серверы, панель создаёт их и запускает. Каждая услуга WHMCS — один игровой сервер в панели, каждый клиент WHMCS — аккаунт в панели с ролью Клиент и тем же e-mail.
Требования: WHMCS 8.x (PHP 7.4–8.3 с cURL), панель доступна с сервера WHMCS по HTTPS.
Установка
- Скачайте архив
gamepanel-whmcs-<версия>.zipв Загрузках и распакуйте его в корень WHMCS. Должен появиться файлmodules/servers/gamepanel/gamepanel.php. - В панели выпустите API-ключ: Доступ → API-ключи, название
whmcs, скоупadmin. Ключ видаgmk_…показывается один раз — сразу скопируйте его. - В WHMCS откройте System Settings → Servers → Add New Server: - Hostname — домен панели, например
panel.example.com(подойдёт и полный адресhttps://panel.example.com:8443); - Module — Game Panel; - Password — API-ключ (если ключ не помещается в поле, укажите его в Access Hash); - Secure — включено (HTTPS).
Нажмите Test Connection — модуль проверит, что ключ работает и у него права администратора.
- Создайте продукт (System Settings → Products/Services). На вкладке Module Settings выберите Game Panel, группу серверов и заполните: - Plan — тариф панели, с которым создаётся сервер; список загружается из панели; - Location — где размещать сервер; пусто — любая подходящая нода; - External ID prefix — оставьте
whmcs-, если панель не обслуживает несколько установок WHMCS.
Тариф определяет и игру, и ресурсы сервера, поэтому заведите в панели по тарифу на каждый продукт — см. Первый игровой сервер.
Что делает модуль
- Create — находит аккаунт клиента по e-mail или создаёт его (пароль — пароль услуги) и создаёт сервер с тарифом и локацией продукта. Номер сервера в панели — префикс + ID услуги, например
whmcs-1042. - Suspend / Unsuspend — приостанавливает и возобновляет сервер; причину приостановки клиент видит в панели.
- Terminate — удаляет сервер.
- Upgrade / Downgrade — переводит сервер на тариф нового продукта.
- Change Password — меняет пароль аккаунта клиента в панели. Аккаунт у клиента один на все услуги.
- Login to control panel — одноразовая ссылка входа в панель, действует 5 минут.
- Start / Stop / Restart — кнопки администратора на странице услуги.
На странице услуги в админке WHMCS видны ID сервера (ссылка в панель), статус, нода, адрес и аккаунт клиента. В кабинете клиента — статус, адрес для подключения игроков и кнопка Open control panel.
Create можно безопасно повторять: если в панели уже есть сервер с номером этой услуги, модуль возьмёт его, а не создаст второй. Terminate для услуги, сервер которой уже удалён, тоже завершается успешно.
Параметры для каждого заказа
- Configurable option с именем
plan_idилиlocation_idперекрывает настройку продукта. Значение опции — ID в панели, например подопцияloc_fra|Frankfurt. - Configurable options или custom fields с именем
var_<ключ>задают параметры сервера, например custom fieldvar_motd. Если заданы оба, побеждает custom field.
Ключи параметров — в каталоге игр, см. Каталог игр. Модуль передаёт значения от имени администратора, так что ограничения доступа параметров на них не действуют. Не давайте клиенту выбирать в заказе то, что продаёте отдельно, — например, слоты лучше закрепить тарифом.
Письма клиентам
Панель клиентам не пишет. Письма — «сервер готов», «сервер приостановлен», «бэкап не удался» — отправляет WHMCS, узнавая о событиях через вебхуки панели, см. HTTP API и вебхуки.
Особенности
- E-mail, который принадлежит администратору или сотруднику панели либо отключённому аккаунту, при Create отклоняется — разберитесь в панели и повторите.
- Если у клиента уже есть аккаунт в панели, WHMCS не знает его пароля: поле пароля услуги очищается, клиент входит кнопкой Open control panel.
- Смена e-mail клиента в WHMCS не меняет аккаунт в панели; новые услуги такого клиента получат новый аккаунт.
- Все запросы к панели пишутся в Module Log WHMCS (API-ключ замаскирован). Там же ищите причину, если Create завершился ошибкой.