Skip to content

API WP Guardian

Введение

Этот раздел предназначен для партнеров Plesk и cPanel, которые хотят продавать VPS с установленным и лицензированным WP Guardian. Мы предоставляем пошаговую инструкцию и примеры вызовов API, необходимых для установки и лицензирования WP Guardian на VPS клиента.

Предварительные требования

Как партнер Plesk или cPanel вы должны иметь доступ к их соответствующим API: Key Administrator для Plesk и Manage2 для cPanel.

Наличие доступа означает, что у вас есть учетные данные, необходимые для использования API, то есть базовый $AUTH_TOKEN для Key Administrator и пара логин/пароль для Manage2.

Примечание

Если у вас нет указанных выше учетных данных, обратитесь к менеджеру по работе с учетными записями Plesk или cPanel. 

Общий алгоритм и подробные схемы

Процедура начинается с размещения клиентом заказа (шаг 1) и заканчивается предоставлением клиенту готового к использованию VPS (шаг 6). В промежутке необходимо выполнить следующие действия:

(2) Создать пользователя WP Guardian.

(3) Создать лицензию WP Guardian.

(4) Получить фрагмент кода строки подключения.

(5) Выполнить фрагмент кода строки подключения на VPS клиента.

За исключением шага 3, все указанные выше шаги аналогичны для Key Administrator и Manage2. Поэтому у нас будет два отдельных раздела с описанием процесса создания лицензии WP Guardian в Key Administrator и Manage2.

Чтобы помочь вам лучше понять различия между Key Administrator и Manage2, мы прилагаем подробную схему для каждого из этих API. Далее мы также используем нумерацию, указанную в этих схемах (например, API-запрос 2.1 или ответ 4.2). Если вы запутаетесь в тексте, обратитесь к схемам ниже для разъяснения.

2. Создание пользователя WP Guardian

Чтобы создать пользователя с помощью API WP Guardian, вам сначала нужно получить токен управления. Для этого свяжитесь с представителем отдела продаж WP Guardian или со службой поддержки клиентов Plesk.

После получения токена управления отправьте запрос по следующему шаблону, добавив токен в заголовок Authorization:

Запрос 2.1

POST https://app.wpguardian.io/api/v1/security-dashboard/management/users HTTP/1.1
Authorization: Bearer $MANAGEMENT_TOKEN
Content-Type: application/json
{
  "email": "john.doe@example.com",
  "firstName": "John",
  "lastName": "Doe"
}

Если запрос 2.1 выполнен успешно, вы получите ответ следующего вида:

Ответ 2.3

HTTP/1.1 201 Created
{
  "data": {
    "userGuid": "1092a1a6-a716-400d-aba5-ad853a330561",
    "teamGuid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
    "userToken": "368ded8f-883a-4759-9f28-8906c3e5136c"
  }
}

Ответ содержит три значения. Сохраните два из них (teamGuid и userToken), чтобы использовать их позже:

  • teamGuid используется для обновления или аннулирования лицензии WP Guardian.
  • userToken помогает подключить к учетной записи пользователя больше серверов.

Если запрос 2.1 неверен, вы получите следующий ответ с ошибкой:

Ответ с ошибкой: недействительный токен

HTTP/1.1 401 Unauthorized

Если пользователь с предоставленной информацией уже существует, вы получите следующий ответ с ошибкой:

Ответ с ошибкой: пользователь уже существует

HTTP/1.1 409 Conflict

3. Создание лицензии WP Guardian (Key Administrator)

Примечание

Каждый пользователь WP Guardian одновременно может иметь только одну активную лицензию. 

Лицензия для пользователя WP Guardian создается через Key Administrator Partner API.

Чтобы создать лицензию, отправьте запрос по следующему шаблону:

Запрос 3.1

POST https://api.central.plesk.com/30/keys?return-key-state=yes
Authorization: Basic: $AUTH_TOKEN
Content-Type: application/json
{
    "activationInfo": { "uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c" },
    "items": [
        {
            "item": "WPG-PLSK-1-1M"
        }
    ]
}

где

  • $AUTH_TOKEN — это токен, необходимый для доступа к Key Administrator Partner API. Он есть у каждого партнера Plesk.
  • uid в activationInfo — это teamGuid из Ответа 2.3.
  • item в items — это тип лицензии, который может принимать одно из следующих значений:

  • WPG-PLSK-1-1M

  • WPG-PLSK-5-1M
  • WPG-PLSK-10-1M
  • WPG-PLSK-30-1M
  • WPG-PLSK-50-1M

!!! примечание

  Список всех доступных типов лицензий WP Guardian можно найти в [разделе «Константы Partner API 3.0»](https://docs.plesk.com/en-US/obsidian/partner-api-3.0/partner-api-30-constants.77835/){target=_blank} (`«category»:«WP Guardian Keys»`).

Если запрос 3.1 выполнен успешно, вы получите ответ следующего вида:

Ответ 3.4

HTTP/1.1 201 Created
{
  "ownerId": "700540512",
  "keyIdentifiers": {
    "keyId": 17654729,
    "keyNumber": "WPG.17654729.0000",
    "activationCode": "AB1234-CD5678-EF9012-GH123-IJ456",
    "activationLink": "https://app.wpguardian.io/licensing/activate-license?code=AB1234-CD5678-EF9012-GH123-IJ456&product=WP+Guardian+1+Site"
  },
  "parentKeyIdentifiers": null,
  "activationInfo": {
    "uid": "1247c8bc-6d5d-41f6-9bda-007a6e6fb20c",
    "activated": true
  },
  "ipAddressBinding": null,
  "nickname": "",
  "productConfigurationId": null,
  "items": [
    {
      "externalId": null,
      "item": "WPG-PLSK-1-1M"
    }
  ],
  "creationDate": "2024-09-12T10:34:11.741Z",
  "lastModificationDate": "2024-09-12T10:34:11.763Z",
  "updateDate": "2024-10-12T00:00:00.000Z",
  "expirationDate": "2024-10-22T00:00:00.000Z",
  "susExpirationDate": null,
  "susStatus": null,
  "supportExpirationDate": null,
  "supportStatus": null,
  "status": "ACTIVE",
  "terminated": false,
  "suspended": false,
  "ownerSuspended": false,
  "autoRenew": true,
  "restrictIPBinding": false,
  "frauds": [],
  "lastReportingDate": null,
  "lastReportingIp": null,
  "lastReportingOs": null,
  "childKeyIdentifiers": [],
  "overridingKeyIdentifiers": null
}

Если запрос 3.1 неверен, вы получите следующий ответ с ошибкой:

Ответ с ошибкой: недействительный токен

HTTP/1.1 401
Content-Type: application/json
Content-Length: 77
{"code":"401","type":"6011","message":"The request requires authentication."}

Если у пользователя уже есть активная лицензия, вы получите следующее сообщение об ошибке:

Ответ с ошибкой: ошибка третьей стороны

HTTP/1.1 404 
Content-Type: application/json
{"code":"404","type":"6101","message":"Third party server returned an error"}

3. Создание лицензии WP Guardian (Manage2)

В отличие от Key Administrator, Manage2 не поддерживает создание лицензии, уже привязанной к определенному пользователю. Сначала вы создаете неактивную лицензию, генерируете ссылку для активации лицензии, а затем отправляете эту ссылку клиенту. Как только клиент откроет ссылку, лицензия станет активной и будет привязана к клиенту.

Давайте посмотрим, как выполнить каждый шаг.

Шаг 1. Создайте неактивную лицензию WP Guardian, отправив API-запрос по следующему шаблону:

Запрос 3.1

GET https://manage2.cpanel.net/XMLlicenseAdd.cgi?output=json&packageid=P999994429&sites==500
Authorization Basic: login:password

где

  • login:password — это пара логин/пароль, необходимая для доступа к API Manage2. Она есть у каждого партнера cPanel.
  • packageID — это тип лицензии, который может принимать одно из следующих значений:
  • «P999994429»: «WP Guardian для 500 сайтов»
  • «P999994433»: «WP Guardian для 1000 сайтов»
  • «P999994441»: «WP Guardian для более чем 10 000 сайтов, оплата по факту»
  • Параметр sites должен соответствовать типу лицензии. Например, если тип лицензии — P999994429, то параметр sites имеет значение 500, и так далее.

!!! примечание

  Чтобы посмотреть список всех доступных типов лицензий WP Guardian, [используйте API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}.

!!! примечание

  [Вывод API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} содержит два продукта: «WP Guardian для N сайтов» и «WP Guardian (cPanel Addon), пакет для N сайтов». Вам нужен первый.

Если запрос 3.1 выполнен успешно, вы получите ответ следующего вида:

Ответ 3.2

{
    "monthly_price": "21.34",
    "status": 1,
    "yearly": 0,
    "reason": "Activated EXAMPLECOMPANY license on in the 'example' group.",
    "price": "0.00",
    "promoinfo": "",
    "licenseid": "17654729"
}

Из полученного ответа вам необходимо скопировать значение licenseid, чтобы использовать его позже.

Шаг 2. Сгенерируйте ссылку активации, отправив API-запрос по следующему шаблону:

Запрос 3.3

{
GET https://manage2.cpanel.net/XMLlicenseInfo.cgi?output=json&liscid=17654729
Authorization Basic: login:password
}

где liscid — это licenseid из ответа 3.2.

Если запрос 3.3 выполнен успешно, вы получите ответ следующего вида:

Ответ 3.4

{
    "licenses": {
        "17654729": {
            "accounts": 1,
...
            "activation_link": "https://app.wpguardian.io/licensing/activate-license?code=A00300-GEX111-577J59-A6AG72-AEKX66&product=WP+Guardian+500+Sites ",
...
        }
    },
    "reason": "OK",
    "status": 1,
    "version": 0.7
}

Шаг 3. Сохраните ссылку активации, полученную в ответе 3.4, и отправьте ее клиенту. Убедитесь, что клиент открыл ссылку. Открытие ссылки активирует лицензию и привязывает ее к клиенту.

4. Получение фрагмента кода строки подключения

Фрагмент кода строки подключения — это скрипт, который вам нужно получить из API WP Guardian. Запустив этот фрагмент кода на сервере клиента, вы подключите его к WP Guardian.

Чтобы получить фрагмент кода, отправьте API-запрос по следующему шаблону:

Запрос 4.1

GET https://app.wpguardian.io/api/v1/security-dashboard/connection-snippet
Authorization: Bearer $USER_TOKEN
Content-Type: application/json

где $USER_TOKEN — это userToken из ответа 2.3.

Если API-запрос был корректным, вы получите ответ следующего вида:

Ответ 4.2

{
    "data": {
        "expireAt": "2024-09-24T17:18:51.697Z",
        "snippet": "<script to run on a client's VPS>"
    }
}

5. Запуск фрагмента кода на VPS клиента

Последний шаг — запустить полученный на предыдущем шаге фрагмент кода строки подключения на VPS клиента. После этого VPS с WP Guardian полностью готов к работе. Поздравляем!

Примечание

Фрагмент кода автоматически подключает VPS клиента к WP Guardian.
Если по какой-либо причине фрагмент кода не сработает, вы можете решить проблему, [подключив VPS к WP Guardian вручную]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank}.
Back to top