Skip to content

API WP Guardian

Introduction

Cette section s'adresse aux partenaires Plesk ou cPanel qui souhaitent vendre des VPS avec WP Guardian installé et sous licence. Nous fournissons une procédure étape par étape et des exemples d'appels API nécessaires à l'installation et à l'obtention de la licence WP Guardian sur le VPS d'un client.

Prérequis

En tant que partenaire Plesk ou cPanel, vous devez avoir accès à leurs API respectives : Key Administrator pour Plesk et Manage2 pour cPanel.

L'accès signifie que vous disposez des informations d'identification nécessaires pour utiliser les API, soit simplement $AUTH_TOKEN pour Key Administrator et la paire identifiant/mot de passe pour Manage2.

Remarque

Si vous ne disposez pas des identifiants mentionnés ci-dessus, veuillez contacter votre gestionnaire de compte Plesk ou cPanel.

Algorithme global et schémas détaillés

La procédure commence par la passation d'une commande par un client (étape 1) et termine avec la remise à la clientèle d'un VPS prêt à l'emploi (étape 6). En attendant, vous devez suivre les étapes suivantes :

(2) Créer un utilisateur WP Guardian.

(3) Créer une licence WP Guardian.

(4) Obtenir le snippet de la chaîne de connexion.

(5) Exécuter le snippet de chaîne de connexion sur le VPS du client.

Toutes les étapes ci-dessus sont similaires entre Key Administrator et Manage2, sauf l'étape 3. Par conséquent, vous trouverez deux sections séparées décrivant comment créer une licence WP Guardian avec Key Administrator et Manage2.

Pour vous aider à mieux comprendre les différences entre Key Administrator et Manage2, nous joignons le schéma détaillé de chacune de ces API. À partir de là, nous utilisons également la numérotation indiquée sur ces schémas (par exemple, API Request 2.1 ou Response 4.2). Si le texte vous semble difficile à suivre, consultez les schémas ci-dessous pour plus de clarté.

2. Créer un utilisateur WP Guardian

Pour créer un utilisateur via l'API WP Guardian, vous devez d'abord obtenir un jeton de gestion. Pour ce faire, contactez un représentant commercial de WP Guardian ou l'équipe Plesk Customer Success.

Une fois que vous avez obtenu le jeton de gestion, envoyez la requête avec le modèle suivant en ajoutant le jeton à l'en-tête Authorization :

Request 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" }

Si l'étape Request 2.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :

Response 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" } }

La réponse contient trois valeurs. Enregistrez-en deux (teamGuid et userToken) pour les utiliser ultérieurement :

  • La valeur teamGuid est utilisée pour mettre à niveau ou résilier une licence WP Guardian.
  • La valeur userToken permet de connecter davantage de serveurs au compte de l'utilisateur.

Si Request 2.1 est incorrect, vous recevrez la réponse d'erreur suivante :

Réponse d'erreur : réponse de jeton non valide

HTTP/1.1 401 Unauthorized

Si l'utilisateur associé aux informations soumises existe déjà, vous recevrez la réponse d'erreur suivante :

Réponse d'erreur : l'utilisateur existe déjà.

HTTP/1.1 409 Conflict

3. Création d'une licence WP Guardian (Key Administrator)

Remarque

Un utilisateur de WP Guardian ne peut avoir qu'une seule licence active à la fois.

Vous créez une licence pour un utilisateur WP Guardian via l'API Key Administrator Partner.

Pour créer une licence, envoyez une demande suivant le modèle suivant :

Request 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" } ] }

sachant que

  • $AUTH_TOKEN est un jeton nécessaire pour accéder à l'API Key Administrator Partner. Chaque partenaire Plesk dispose de ce jeton.
  • uid dans activationInfo correspond à teamGuid pour Response 2.3.
  • item dans items correspond au type de licence et peut prendre l'une des valeurs suivantes :

  • WPG-PLSK-1-1M

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

!!! remarque

Pour voir la liste de tous les types de licences WP Guardian disponibles, consultez la section ["Constantes de 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"`).

Si l'étape Request 3.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :

Response 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 }

Si Request 3.1 est incorrect, vous recevrez la réponse d'erreur suivante :

Réponse d'erreur : réponse de jeton non valide

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

Si l'utilisateur possède déjà une licence active, vous recevrez la réponse d'erreur suivante :

Réponse d'erreur : erreur tierce

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

3. Création d'une licence WP Guardian (Manage2)

Contrairement à Key Administrator, Manage2 ne prend pas en charge la création d'une licence déjà associée à un utilisateur spécifique. Vous devez créer d'abord une licence inactive, puis générer le lien d'activation de cette licence. Ensuite, envoyez ce lien au client. Une fois que le client ouvre le lien, la licence devient active et est associée au client.

Voyons comment procéder étape par étape.

Étape 1. Créez une licence WP Guardian inactive en envoyant une requête API selon le modèle suivant :

Request 3.1

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

sachant que

  • login:password est la paire identifiant/mot de passe nécessaire pour accéder à l'API Manage2. Chaque partenaire cPanel dispose de ce jeton.
  • packageID correspond au type de licence et peut prendre l'une des valeurs suivantes :
  • "P999994429": "WP Guardian 500 Sites"
  • "P999994433": "WP Guardian 1000 Sites"
  • "P999994441": "WP Guardian 10000+ Sites Pay As You Go"
  • Le paramètre sites doit correspondre au type de licence. Par exemple, si le type de licence est P999994429, alors le paramètre sites est 500, etc.

!!! remarque

Pour voir la liste de tous les types de licences WP Guardian disponibles, [utilisez l'API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank}.

!!! remarque

[La sortie de l'API Manage2](https://docs.cpanel.net/manage2/api/manage2-api-list-package-information/){target=_blank} contient deux produits : "WP Guardian N Sites" et "WP Guardian (extension cPanel) N Sites Pack". Vous avez besoin du premier.

Si l'étape Request 3.1 a été validée, vous obtiendrez une réponse similaire à ce modèle :

Response 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" }

Vous devez copier la valeur licenseid de la réponse pour l'utiliser ultérieurement.

Étape 2. Créez une licence WP Guardian inactive en envoyant une requête API selon le modèle suivant :

Request 3.3

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

sachant que liscid correspond à licenseid de la Response 3.2.

Si l'étape Request 3.3 a été validée, vous obtiendrez une réponse similaire à ce modèle :

Response 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 }

Étape 3. Enregistrez le lien d'activation reçu dans Response 3.4, puis envoyez-le au client. Assurez-vous que le client ouvre le lien. Ouvrir le lien active la licence et l'associe au client.

4. Obtenir le snippet de la chaîne de connexion

Le snippet de la chaîne de connexion est un script que vous devez obtenir de l'API WP Guardian. En exécutant le snippet sur le serveur d'un client, vous le connectez à WP Guardian.

Pour obtenir le snippet, envoyez une requête API selon le modèle suivant :

Request 4.1

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

$USER_TOKEN correspond à userToken de la Response 2.3.

Si la requête API est correcte, vous obtiendrez une réponse conforme au modèle suivant :

Response 4.2

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

5. Exécution du snippet sur le VPS d'un client

La dernière étape consiste à exécuter le snippet de chaîne de connexion reçu lors de l'étape précédente sur le VPS du client. Votre VPS avec WP Guardian est désormais prêt. Félicitations !

Remarque

Ce snippet connecte automatiquement le VPS d'un client à WP Guardian. Si, pour une raison quelconque, le snippet échoue, vous pouvez résoudre le problème en [connectant manuellement un VPS à WP Guardian]( https://docs.wpguardian.io/index.html#connecting-servers-to-wp-guardian){target=_blank}.

Back to top