Chiffre d’affaire sans limites!!!

Sécurisez votre site web pour renforcer votre image de marque, du logo au branding

Chargement…

Documentation 3DIS License Platform

Guide administrateur 3DIS License Platform

Ce guide décrit la configuration d’un produit, de ses plans, de ses licences et de ses versions, ainsi que le traitement des packs, essais, activations, e-mails et mises à jour.

Prérequis et installation

WordPress

Site HTTPS, version compatible, accès administrateur, tâches planifiées actives et sauvegarde récente.

Sécurité

Clés de signature hors contenu public, secrets d’émission protégés et droits réservés aux comptes habilités.

Messagerie

Adresse d’expéditeur réelle, SMTP authentifié et domaine configuré avec SPF, DKIM et DMARC.

  1. Téléversez le ZIP officiel depuis Extensions et activez 3DIS License Platform.
  2. Vérifiez la présence des menus Produits, Formules, Versions, E-mails et Licences.
  3. Contrôlez la création des tables et la page de santé ou les diagnostics disponibles.
  4. Configurez la signature et l’e-mail avant toute émission réelle.
  5. Créez un produit et un plan de test avant d’intégrer un client commercial.

Créer un produit

Ouvrez 3DIS DEV puis Produits. Le code immuable identifie le produit dans les licences, l’API et les mises à jour. Choisissez un identifiant court, en minuscules et stable, par exemple mon-plugin. Ne le remplacez pas après la diffusion des clients. Le nom commercial peut évoluer sans modifier le contrat technique.

Renseignez le slug WordPress lorsque le produit est un plugin, sa description, son statut, le préfixe des clés, la durée d’essai, la politique d’activation, le type de paquet, le canal par défaut et les URL de documentation, d’assistance, de vente et de téléchargement. Une fiche complète permet aux clients de licence de recevoir les bonnes informations sans conditions spécifiques dans le code.

Choisir la politique d’activation

La politique « Site WordPress » utilise le site ou le réseau selon la configuration multisite. Elle convient aux plugins. La politique « Sujet opaque + installation » permet à un logiciel ou à une intégration de transmettre un identifiant de contexte et un identifiant d’installation sans imposer la notion de domaine. Le Générateur XML peut ainsi associer l’activation à un poste et à un SIRET selon son contrat client.

Le serveur ne doit pas interpréter chaque métier dans son cœur. Il valide la requête normalisée, applique la politique sélectionnée et enregistre l’activation. Les données propres au produit restent documentées par le client et le plan.

Créer une formule

Ouvrez Formules et choisissez le produit. Le code de formule est lui aussi stable : solo, business, unlimited ou trial. Renseignez le nom public, le type payant ou essai, la durée, la limite d’activation, les droits de mise à jour, le canal et la période de grâce.

ChampExempleConséquence
Durée365 joursFixe la date d’expiration lors de l’émission
Activations1, 5, 50 ou illimitéesLimite les installations simultanées
Mises à jourAutoriséesPermet d’interroger et télécharger les versions du canal
CanalStableDétermine les versions proposées au client
GrâceSelon politiqueDéfinit la tolérance après expiration

Associer la vente au produit de licence

Le profil 3DIS PAYMENT active l’émission de licence, indique l’endpoint du serveur, le code produit et la classe du champ qui contient le plan. Après confirmation du paiement, il transmet l’acheteur, le produit, la formule et la quantité. Ces valeurs doivent correspondre aux codes présents dans License Platform.

Un produit public ne doit pas utiliser un profil de recette. Créez un profil `ACHAT` dédié et testez d’abord son équivalent de recette. Si plusieurs quantités sont vendues, définissez clairement si la quantité multiplie le nombre de licences ou les activations d’une seule licence. Le comportement doit être identique dans le formulaire, le paiement et la plateforme.

Créer un pack à licence unique

  1. Créez chacun des composants comme produit simple.
  2. Créez le produit de pack avec son propre code immuable.
  3. Dans Produits inclus, sélectionnez les composants couverts par la clé du pack.
  4. Créez les plans du pack avec leurs limites d’activation.
  5. Créez la fiche commerciale, le formulaire et le profil de paiement utilisant le code du pack.
  6. Testez la même clé sur chaque composant inclus et vérifiez qu’elle est refusée par un produit non inclus.

Règle : un pack ne doit pas créer une clé par composant. La licence du pack porte les droits groupés. Le système doit permettre de créer un autre pack depuis l’interface sans ajouter une condition propre à 3DIS Business Suite.

Émettre et gérer une licence

Une licence peut être émise automatiquement après paiement ou manuellement par un administrateur. Vérifiez le client, son e-mail, le produit, le plan, la quantité, la date d’expiration et le statut. L’émission automatique doit utiliser une clé d’idempotence liée à la transaction afin qu’un webhook répété ne crée pas plusieurs licences.

Depuis Licences, vous pouvez consulter les activations et l’historique. Une suspension bloque temporairement les nouveaux contrôles ou activations selon la politique. Une révocation invalide définitivement la clé. L’expiration est calculée à partir du plan. La désactivation d’un site ou poste libère une activation sans supprimer l’historique.

Essai de 15 jours

Créez un plan de type essai avec une durée de 15 jours et une activation. Le service d’essai doit limiter les demandes répétées selon l’identité prévue par la politique. Une licence d’essai donne accès au canal configuré et doit être identifiable dans l’administration. À l’achat, le client reçoit le plan payant correspondant sans perdre inutilement ses réglages locaux.

Configurer les e-mails

Le modèle global peut être complété par un modèle produit. Utilisez les variables documentées pour le nom, le produit, la formule, la date, la clé, le téléchargement et l’assistance. L’expéditeur doit appartenir au domaine et exister réellement. Ne placez pas l’adresse de l’acheteur dans le champ De ; utilisez-la comme destinataire et, si nécessaire, comme Reply-To dans un message administratif.

Le bouton « Renvoyer la licence » réutilise la licence existante. Il doit enregistrer la tentative et son résultat. Un état « envoyé » confirme l’acceptation par le système de messagerie, pas la remise en boîte de réception. Consultez les journaux SMTP et les réponses du fournisseur pour diagnostiquer un message absent.

Ajouter et publier une version

  1. Ouvrez Versions et choisissez le produit.
  2. Saisissez un numéro sémantique cohérent avec le manifeste du plugin ou du logiciel.
  3. Choisissez le canal stable, bêta ou développement.
  4. Téléversez le type de paquet attendu par la fiche produit : ZIP, MSI, EXE ou autre format pris en charge.
  5. Ajoutez des notes de version compréhensibles et cochez « critique » uniquement si nécessaire.
  6. Créez le brouillon, vérifiez l’empreinte SHA-256 puis publiez la version.

Une version retirée n’est plus proposée comme mise à jour ordinaire. Une version bloquée doit être refusée lorsqu’elle présente un risque. Ne publiez pas un simple dossier de sources comme installateur commercial : l’artefact doit être construit, testable et compatible avec le type déclaré.

Intégrer un client WordPress

Le client contient le code produit, l’URL de la plateforme et la clé publique ou l’empreinte de confiance requise. Il expose une page de saisie de licence, active le domaine, conserve un état local limité et renouvelle périodiquement le contrôle. Le vérificateur de mise à jour interroge le canal autorisé et affiche la nouvelle version dans WordPress.

Le téléchargement s’effectue avec une autorisation temporaire vérifiée par le serveur. Le client contrôle ensuite l’intégrité attendue. Une panne temporaire du serveur ne doit pas détruire immédiatement les réglages ou les données ; la politique de cache et de grâce doit être documentée.

Intégrer un logiciel Windows

Le logiciel utilise la politique opaque + installation ou une politique compatible. Il transmet le code produit, le plan et les identifiants normalisés prévus. La clé privée du serveur n’est jamais incluse dans l’application. Le client vérifie les réponses signées à l’aide de la clé publique.

Pour une mise à jour Windows, publiez l’installateur correspondant au type configuré. Le logiciel recherche la version stable, compare les numéros, vérifie les droits de la licence et télécharge l’artefact. L’installation du fichier reste soumise aux contrôles de sécurité du système.

API, sécurité et diagnostic

Les routes d’activation, contrôle, désactivation, essai, émission et mise à jour valident les paramètres, l’horodatage, la signature et la fréquence des requêtes. Les messages d’erreur distinguent une donnée invalide, une licence expirée, une limite atteinte et un incident temporaire. Ne désactivez pas les contrôles pour contourner une erreur : consultez l’audit et le contexte normalisé.

Protégez les sauvegardes, clés de signature, secrets d’émission et artefacts privés. Limitez les rôles WordPress pouvant gérer les licences. Après une mise à jour, exécutez le contrôle de santé, une activation de test, une désactivation et une recherche de version.

FAQ

Pourquoi le produit n’apparaît-il pas dans Versions ?

Vérifiez son statut, son type de paquet et les droits du compte administrateur.

Puis-je modifier un code produit existant ?

Évitez-le après diffusion. Les clients et licences utilisent ce code comme identifiant immuable.

Comment renvoyer un e-mail sans créer une nouvelle clé ?

Utilisez l’action de renvoi sur la licence existante. Ne relancez pas l’émission.

Pourquoi plusieurs e-mails contiennent-ils la même clé ?

Plusieurs tentatives de livraison ont été effectuées pour la même licence. Vérifiez l’historique et l’idempotence du webhook.

Comment retirer une version défectueuse ?

Retirez-la pour cesser sa diffusion ou bloquez-la si les clients doivent explicitement la refuser, puis publiez une version corrigée.

Avant la première vente

Testez un produit, un plan, un paiement, une émission, un e-mail, une activation et une mise à jour dans un parcours complet.

Contacter le support

Références officielles

Ces standards officiels complètent la configuration de l’API, des licences et des versions logicielles.

Architecture, intégration et maintenance — 3DIS License Platform

Référence : 1.0.0 · documentation vérifiée dans le code le 29 septembre 2026. Cette partie complète le guide d’utilisation. Les exemples doivent être adaptés puis testés sur un formulaire ou contenu de recette. Ils ne modifient pas automatiquement votre site.

Serveur de licences et clients : deux rôles distincts

License Platform héberge les produits, plans, licences, activations et versions distribuées. Le SDK embarqué dans chaque plugin demande et vérifie les décisions. Le serveur ne remplace pas le contrôle local du client : ce dernier doit vérifier signature, produit, installation, contexte, dates et droits avant d’autoriser une fonction. Une fréquence de contrôle ou une tolérance propre à Optimizer n’est pas une règle universelle du serveur.

Les composants src/Product, Plan, License, Activation et Trial portent les règles métier. src/Api valide les requêtes, l’horodatage, les limites et l’idempotence ; src/Signing signe les décisions ; src/Software sélectionne les versions. Les contrôleurs WordPress sont dans includes/Rest, l’administration dans includes/WordPress et l’envoi dans includes/Email.

Modèle de données

Les tables utilisent le préfixe WordPress suivi de 3dis_license_ : products, plans, plan_versions, licenses, activations, trial_claims, audit_events, idempotency, license_emails, software_versions, issuer_clients, download_tokens, email_templates et commercial_events. Le schéma est suivi par three_dis_license_platform_schema_version.

Le code produit est un identifiant stable distinct de son nom commercial. Une licence référence une version de plan ; les activations relient la licence aux installations et à leur contexte. Les clés, réponses rejouables et données nécessaires aux courriels rendent la base sensible : ne publiez pas ses exports. Modifier directement une ligne ne remplace pas les transitions et contrôles métier.

API de licence

Sous /wp-json/3dis-license/v1, les opérations POST /licenses/activate, /licenses/check et /licenses/deactivate acceptent un objet JSON. Le schéma 1.0 exige exactement les champs schema_version, request_id, timestamp, product_id, license_key, installation_id, client_version et activation_context. Les champs inconnus sont refusés.

request_id et installation_id sont des UUIDv4 canoniques ; le premier identifie une opération, le second reste stable pour l’installation. La date est en UTC RFC3339. La fenêtre admise est de dix minutes dans le passé et deux minutes dans le futur ; une horloge incorrecte peut produire clock_skew. Le corps est limité à 16 Kio, le contexte à 4 Kio. Utilisez le SDK correspondant à la politique d’activation plutôt que d’inventer le contenu d’activation_context.

Une répétition de la même opération doit conserver son identifiant et son corps ; une nouvelle opération utilise un nouvel identifiant. La réponse signée doit être vérifiée, pas seulement décodée. Un code HTTP réussi n’équivaut pas à une décision positive. Gardez la clé privée sur le serveur de signature et la clé publique de confiance dans le client ; ne récupérez pas aveuglément une nouvelle clé sur le réseau pour accepter une réponse.

Émission commerciale et essai

POST /trials/start suit la politique d’essai du produit. POST /licenses/issue est une opération serveur réservée au raccordement commercial : ce n’est pas un formulaire public d’émission libre. Elle vérifie les en-têtes X-3DIS-Timestamp et X-3DIS-Signature, avec HMAC SHA-256 sur timestamp + '.' + corps JSON brut et une fenêtre de cinq minutes.

Le corps d’émission comporte notamment payment_id (UUID de paiement), product_code, plan_code, customer_email et quantity. Le même paiement et le même contenu rejouent le résultat ; un contenu différent pour cet identifiant est refusé. L’envoi du courriel intervient après l’émission : contrôlez son statut séparément. Ne recréez pas une licence pour traiter un simple échec de livraison du mail.

Publication et téléchargement d’une version

  1. Préparez un paquet propre : aucun secret privé, export SQL, journal, sauvegarde ou fichier de développement inutile. Le numéro de version doit correspondre au contenu du paquet.
  2. Dans Versions, choisissez produit, type et canal, ajoutez l’archive et les notes, puis créez le brouillon. Le contrôleur inspecte le paquet, sa taille et son SHA-256.
  3. Vérifiez les prérequis et publiez. La version doit être supérieure aux versions déjà publiées du canal. Un brouillon peut être remplacé ; une version publiée ne doit pas être remplacée silencieusement par un autre fichier.
  4. Pour corriger un paquet publié, publiez un numéro supérieur. Utilisez Retirer ou Bloquer selon votre procédure et documentez la raison.
  5. Vérifiez le téléchargement côté client et son empreinte ; la présence d’une ligne publiée ne prouve pas à elle seule un cycle de mise à jour complet.

Les routes POST /updates/check, /updates/info et /updates/token contrôlent licence, activation, canal et compatibilité. GET /updates/download utilise un jeton de cinq minutes, à usage unique ; POST /updates/report reçoit le retour du client. Ne mettez pas ces réponses en cache et ne publiez pas leurs jetons dans des journaux ou liens permanents. Un téléchargement d’installation volontairement public sur une fiche commerciale est un circuit distinct de cette mise à jour autorisée.

Sauvegarde, rotation et retour arrière

Sauvegardez de façon cohérente la base, les artefacts, la configuration et le matériel de signature, avec protection renforcée et copies séparées des secrets. Les clés peuvent être fournies par les variables THREEDIS_LICENSE_SIGNING_PRIVATE_KEY_FILE ou THREEDIS_LICENSE_SIGNING_PRIVATE_KEY_B64, avec THREEDIS_LICENSE_SIGNING_KID. N’incluez pas leur valeur dans la documentation ou une archive cliente.

Une rotation doit être préparée avec les clés publiques acceptées par les clients : changer uniquement la clé du serveur peut invalider tous les clients existants. Testez activation, vérification, désactivation, essais, émission et mise à jour sur un environnement isolé. En restauration, préservez les licences et activations émises depuis la sauvegarde ; une restauration ancienne peut créer incohérences commerciales et rejouages. Revenir au code précédent n’annule pas une migration de schéma.

Diagnostic exploitable

Pour clock_skew, vérifiez l’heure UTC ; pour un refus de plan, produit et plan publiés ; pour une limite, les activations existantes ; pour une erreur de signature, la clé de confiance et le KID ; pour une mise à jour absente, canal, droits, version actuelle et prérequis. Un échec réseau ne signifie pas automatiquement licence expirée. Relevez request_id, code d’erreur et heure, sans transmettre clé complète, secret d’émission ni jeton de téléchargement. Cette documentation décrit le code ; elle ne revendique pas un nouvel audit de sécurité externe.

Retrouver les autres documentations 3DIS · Assistance technique