Модуль WHMCS

Модуль связывает WHMCS с панелью: WHMCS продаёт игровые серверы, панель создаёт их и запускает. Каждая услуга WHMCS — один игровой сервер в панели, каждый клиент WHMCS — аккаунт в панели с ролью Клиент и тем же e-mail.

Требования: WHMCS 8.x (PHP 7.4–8.3 с cURL), панель доступна с сервера WHMCS по HTTPS.

Установка

  1. Скачайте архив gamepanel-whmcs-<версия>.zip в Загрузках и распакуйте его в корень WHMCS. Должен появиться файл modules/servers/gamepanel/gamepanel.php.
  2. В панели выпустите API-ключ: Доступ → API-ключи, название whmcs, скоуп admin. Ключ вида gmk_… показывается один раз — сразу скопируйте его.
  3. В 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 — модуль проверит, что ключ работает и у него права администратора.

  1. Создайте продукт (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 field var_motd. Если заданы оба, побеждает custom field.

Ключи параметров — в каталоге игр, см. Каталог игр. Модуль передаёт значения от имени администратора, так что ограничения доступа параметров на них не действуют. Не давайте клиенту выбирать в заказе то, что продаёте отдельно, — например, слоты лучше закрепить тарифом.

Письма клиентам

Панель клиентам не пишет. Письма — «сервер готов», «сервер приостановлен», «бэкап не удался» — отправляет WHMCS, узнавая о событиях через вебхуки панели, см. HTTP API и вебхуки.

Особенности

  • E-mail, который принадлежит администратору или сотруднику панели либо отключённому аккаунту, при Create отклоняется — разберитесь в панели и повторите.
  • Если у клиента уже есть аккаунт в панели, WHMCS не знает его пароля: поле пароля услуги очищается, клиент входит кнопкой Open control panel.
  • Смена e-mail клиента в WHMCS не меняет аккаунт в панели; новые услуги такого клиента получат новый аккаунт.
  • Все запросы к панели пишутся в Module Log WHMCS (API-ключ замаскирован). Там же ищите причину, если Create завершился ошибкой.