L'add-on Gestion des licences fournit un système complet de gestion de clés de licence basé sur des fournisseurs: créez des produits, générez des clés dans plusieurs formats, suivez les activations par domaine ou machine, vérifiez les licences via une API REST et recevez des événements externes par webhooks.
Fonctionnalités principales
- Gestion des produits: Organisez les clés de licence sous des produits avec des noms traduisibles, des descriptions, un SKU et un suivi de version.
- Génération de clés (4 formats): Générez des clés au format UUID, alphanumérique (segments 5x5), préfixé (préfixe personnalisé + segments) ou signé HMAC (charge utile + signature SHA-256). Chaque format est configurable.
- Génération en masse: Générez jusqu'à 1 000 clés à la fois pour un produit, en choisissant le format, le type de licence, le nombre maximum d'activations et la date d'expiration.
- Types de licence: Standard, Étendue, Essai et À vie: chacun visuellement distingué dans le panneau d'administration avec des badges colorés.
- Cycle de vie des statuts: Les clés peuvent être Actives, Suspendues, Expirées ou Révoquées. Des actions rapides permettent de révoquer, suspendre ou réactiver une clé depuis le panneau d'administration.
- Suivi des activations: Suivez où chaque clé est activée: par domaine, identifiant machine et adresse IP. Appliquez un nombre maximum configurable d'activations par clé (1 à 10 000).
- Activations idempotentes: Réactiver la même combinaison domaine/machine retourne l'activation existante sans créer de doublon.
- API REST de vérification: Les clients peuvent vérifier une clé de licence, l'activer sur un domaine/machine et la désactiver: le tout via des points de terminaison API authentifiés, protégés par une clé API et une limitation de débit.
- 3 fournisseurs intégrés: Manuel (clés créées par l'admin), Envato (vérification des codes d'achat via l'API Envato) et Webhook (réception d'événements de licence depuis des systèmes externes via des callbacks signés HMAC).
- Intégration Envato: Vérifiez les codes d'achat Envato directement, ou déléguez à l'add-on Envato s'il est installé. Mappe automatiquement les noms de licence Envato aux types Standard/Étendue et définit l'expiration à partir des dates de support.
- Support des webhooks: Recevez des événements webhook signés HMAC-SHA256 (
license.created,license.updated,license.revoked,license.expired) pour créer, mettre à jour ou révoquer automatiquement des clés depuis des plateformes externes. - Journaux des webhooks: Chaque callback webhook entrant est enregistré avec le fournisseur, le type d'événement, la charge utile, l'adresse IP, le statut (succès/échec/ignoré) et le message d'erreur.
- Export CSV: Exportez les clés de licence en CSV avec des filtres optionnels par produit et statut. Les colonnes incluent la clé, le produit, le statut, le type, le fournisseur, les dates, le maximum d'activations et le nombre actif.
- Expiration automatique: Traitement par lots pour marquer automatiquement les clés actives passé leur date d'expiration comme expirées.
- Extensibilité des fournisseurs: D'autres add-ons peuvent enregistrer des fournisseurs de licences personnalisés via le gestionnaire de fournisseurs, étendant le système avec des sources de vérification supplémentaires.
- Affichage masqué des clés: Les clés sont affichées avec uniquement les 4 premiers et 4 derniers caractères visibles dans les listes, protégeant les données sensibles en un coup d'œil.
Panneau d'administration
| Section | Description |
|---|---|
| Tableau de bord | Statistiques générales: total des clés, nombre actives/suspendues/expirées/révoquées, total des produits, total des activations actives, clés récentes et entrées récentes du journal des webhooks. |
| Produits | Créer, modifier et supprimer des produits. Chaque produit affiche son nombre de clés actives. Supporte les noms et descriptions traduisibles, le SKU et la version. |
| Clés de licence | Lister, rechercher, filtrer, créer, modifier et supprimer des clés. Actions rapides pour révoquer, suspendre ou réactiver. Génération en masse jusqu'à 1 000 clés. Suppression en masse. Export CSV. Voir les activations par clé. |
| Journaux des webhooks | Parcourir tous les callbacks webhook entrants avec fournisseur, type d'événement, charge utile, statut (codé par couleur), données de réponse et messages d'erreur. |
| Paramètres | Configurer la clé API, la limite de débit, le format de clé par défaut, le préfixe, le maximum d'activations par défaut, la clé HMAC, les identifiants Envato et le secret webhook. Affiche le statut des fournisseurs et les URL des points de terminaison API. |
Points de terminaison API
Tous les points de terminaison de vérification nécessitent un en-tête X-Api-Key (ou un paramètre ?api_key=) et sont limités en débit.
| Point de terminaison | Méthode | Description |
|---|---|---|
/api/licenses/verify | GET | Vérifier une clé de licence. Paramètre product optionnel pour limiter la vérification à un produit spécifique. |
/api/licenses/activate | POST | Activer une clé sur un domaine et/ou une machine. Retourne les détails de l'activation en cas de succès. |
/api/licenses/deactivate | POST | Désactiver une clé d'un domaine spécifique. |
/api/licenses/callback/{provider} | POST | Point de terminaison de callback webhook. Authentifié par signature HMAC (pas de clé API requise). |
Configuration
| Paramètre | Défaut | Description |
|---|---|---|
| Clé API | (vide) | Clé d'authentification pour les points de terminaison API de vérification. Stockée chiffrée. |
| Limite de débit API | 60 req/min | Nombre maximum de requêtes par minute pour les points de terminaison API. |
| Format de clé par défaut | Alphanumérique | Format par défaut pour les clés générées automatiquement (UUID, Alphanumérique, Préfixé, Signé HMAC). |
| Préfixe de clé | LIC | Préfixe utilisé dans le format de clé Préfixé (max 10 caractères alphabétiques). |
| Maximum d'activations par défaut | 1 | Nombre par défaut d'activations autorisées par clé. |
| Clé HMAC | (vide) | Clé secrète pour le format de clé signé HMAC. Utilise APP_KEY par défaut si vide. |
| Token API Envato | (vide) | Token API personnel Envato pour la vérification des codes d'achat. |
| Nom d'utilisateur auteur Envato | (vide) | Votre nom d'utilisateur auteur sur le marketplace Envato. |
| Secret webhook | (vide) | Secret HMAC-SHA256 pour vérifier les signatures des callbacks webhook. |
Événements webhook
Le fournisseur Webhook accepte ces événements signés HMAC sur /api/licenses/callback/webhook :
license.created: Crée une nouvelle clé de licence à partir de la charge utile (nécessitekeyet le slugproduct).license.updated: Met à jour une clé existante du fournisseur webhook (type, expiration, maximum d'activations, métadonnées).license.revoked: Révoque la clé et désactive toutes ses activations actives.license.expired: Marque la clé comme expirée.
Exemples d'utilisation
Vérifier une licence depuis votre application
// Exemple cURL
curl -X GET "https://votresite.com/api/licenses/verify?key=A1B2C-D3E4F-G5H6J-K7L8M-N9O0P" \
-H "X-Api-Key: votre-cle-api"
// Réponse
{
"valid": true,
"message": "License is valid.",
"status": "active",
"license_type": "standard",
"product": "mon-plugin",
"product_name": "Mon Plugin",
"expires_at": "2027-01-15T00:00:00Z",
"max_activations": 3,
"active_activations": 1
}
Activer une licence sur un domaine
curl -X POST "https://votresite.com/api/licenses/activate" \
-H "X-Api-Key: votre-cle-api" \
-H "Content-Type: application/json" \
-d '{"key": "A1B2C-D3E4F-G5H6J-K7L8M-N9O0P", "domain": "site-client.com"}'
// Réponse
{
"success": true,
"message": "License activated successfully.",
"activation": {
"id": 42,
"domain": "site-client.com",
"machine_id": null,
"activated_at": "2026-02-26T10:30:00Z"
}
}
Envoyer un événement webhook
// Callback signé HMAC-SHA256
curl -X POST "https://votresite.com/api/licenses/callback/webhook" \
-H "Content-Type: application/json" \
-H "X-Webhook-Signature: <hmac-sha256-du-corps>" \
-d '{"event": "license.created", "key": "NEW-KEY-12345", "product": "mon-plugin", "license_type": "standard", "max_activations": 5}'
Dépendances
Aucune: l'add-on Gestion des licences fonctionne indépendamment. Intègre optionnellement l'add-on Envato pour partager les identifiants de vérification des codes d'achat.
Idéal pour
- Éditeurs de logiciels vendant des applications de bureau, des plugins ou des thèmes nécessitant une activation par clé de licence.
- Entreprises SaaS émettant des clés de licence pour des déploiements sur site avec des limites d'activation par domaine.
- Auteurs Envato souhaitant gérer et vérifier les codes d'achat avec suivi des activations.
- Développeurs distribuant des plugins WordPress premium, des packages Laravel ou tout logiciel téléchargeable.
- Entreprises nécessitant un serveur de licences auto-hébergé avec un contrôle total sur les clés, les activations et les fournisseurs.