La bibliothèque n’est qu’une enveloppe autour d’un seul point d’entrée. Appelez-le directement si vous travaillez hors PHP — mais vous devrez alors implémenter vous-même les règles de cache ci-dessus, et vérifier la signature.
POST https://addonsmarket.com/api/license
POST /api/licence HTTP/1.1
Host: addonsmarket.com
Content-Type: application/json
User-Agent: MonProduit/1.0
{
"cle": "VOTRE_CLE",
"url": "boutique.exemple.fr"
}
| cle | string | La clé de l’acheteur. Lettres et chiffres seulement ; nous retirons le reste, donc les espaces et tirets collés sont sans effet. |
| url | string | L’hôte sur lequel tourne votre produit. Une URL complète fonctionne aussi — nous n’en gardons que l’hôte. Retirez vous-même le port et le www. si vous voulez que la réponse corresponde à ce que vous avez envoyé. |
{
"donnees": {
"ok": true,
"motif": "",
"domaine": "exemple.fr",
"essai": false,
"quand": "",
"emis": 1790687453,
"revalider": 1790773853,
"sursis": 2592000,
"hote": "boutique.exemple.fr"
},
"signature": "4p9JXJRfcB5R/LNEQwr/cwnVv1M5R1OdCNcU…"
}
| ok | bool | Si le produit peut fonctionner ici. |
| motif | string | Pourquoi non, quand ok vaut faux. Voir le tableau plus bas. |
| domaine | string | Le domaine auquel la licence est liée. |
| essai | bool | Clé de développement ou domaine de test. |
| quand | string | Quand la clé a été remplacée ou révoquée. |
| emis | int | Quand nous avons répondu. Le début du sursis de 30 jours. |
| revalider | int | Horodatage avant lequel vous ne devez pas redemander. |
| sursis | int | Secondes pendant lesquelles vous pouvez garder ce verdict si nous ne répondons plus. |
| hote | string | L’hôte sur lequel nous avons répondu. Rejetez la réponse si ce n’est pas le vôtre. |
| 200 | Un verdict signé. Notez qu’un refus est aussi un 200 — lisez ok, pas le code HTTP. |
| 400 | Clé ou hôte manquant. |
| 405 | Autre chose qu’un POST ou un OPTIONS. |
| 429 | Limite d’appels atteinte. Gardez votre verdict en cache et réessayez plus tard — ne traitez jamais ceci comme un refus. |
Trente appels par minute et par adresse IP. Avec les règles de cache respectées, une boutique fait un appel par jour ; vous n’atteindrez donc cette limite que depuis un test de charge ou une boucle qui a oublié son cache.
Envoyez un User-Agent qui nomme votre produit. Quelques agents par défaut de bibliothèques HTTP — celui d’urllib en Python notamment — sont filtrés avant de nous parvenir et reçoivent un 403. N’importe quelle chaîne personnalisée l’évite.
Écrivez-nous depuis votre espace auteur. Une question qu’il a fallu poser signifie en général qu’il manque un paragraphe à cette page.