Ce document est un sous-ensemble du document de l’API de licences de logiciels qui répertorie toutes les fonctionnalités disponibles via l’API. Ce qui suit est un exemple de code montrant comment implémenter ces fonctionnalités avec JavaScript.
Si vous utilisez jQuery, consultez notre exemple jQuery.
Exemple de requête GET
const url = new URL( 'https://yoursite.com/' ); // Site with Software Licensing activated.
const urlParams = new URLSearchParams( {
edd_action: 'check_license',
license: '59cc77ea94a2d867069a9d96142a35b8', // License key
item_id: '356', // Product ID
url: 'domain.com' // Domain the request is coming from.
} );
url.search = urlParams.toString();
fetch( url.toString() )
.then( response => {
if ( response.ok ) {
return response.json();
} else {
return Promise.reject( response );
}
} ).then( data => {
// Software Licensing has a valid response to parse
console.log( 'Successful response', data );
} ).catch( error => {
// Error handling.
console.log( 'Error', error );
} );
Exemple de requête POST
const formData = new FormData();
formData.append( 'edd_action', 'check_license' ); // Valid actions are activate_license, deactivate_license, get_version, check_license
formData.append( 'license', '59cc77ea94a2d867069a9d96142a35b8' ); // License key
formData.append( 'item_id', '356' ); // Product ID
formData.append( 'url', 'domain.com' ); // If you disable URL checking you do not need this entry.
// Site with Software Licensing activated.
fetch( 'https://yoursite.com/', {
method: 'POST',
body: formData
} ).then( response => {
if ( response.ok ) {
return response.json();
} else {
return Promise.reject( response );
}
} ).then( data => {
// Software Licensing has a valid response to parse
console.log( 'Successful response', data );
} ).catch( error => {
// Error handling.
console.log( 'Error', error );
} );
Réponse
Une réponse aux requêtes ci-dessus serait un objet JSON qui ressemblerait à ceci :
{
"success": true,
"license": "valid",
"item_id": 12534,
"item_name": "Your Product Name",
"expires": "2022-02-26 23:59:59",
"payment_id": 123456,
"customer_name": "Jane Doe",
"customer_email": "[email protected]",
"price_id": 0,
}
Exemple de requête pour les anciens navigateurs
Les exemples ci-dessus sont rédigés en gardant à l’esprit les navigateurs modernes. Si vous avez besoin de la prise en charge d’IE, vous préférerez peut-être utiliser un objet XMLHttpRequest :
// Handling a Software licensing request without jQuery in pure JavaScript. Support for older browsers.
var xhttp = new XMLHttpRequest();
// The url to the site running Easy Digital Downloads w/Software Licensing
var postUrl = 'https://yoursite.com/';
xhttp.onreadystatechange = function() {
if (xhttp.readyState == 4 && xhttp.status == 200) {
var slData = JSON.parse(xhttp.responseText);
handleSoftwareLicensingResponse( slData );
}
}
var data = {
edd_action: 'check_license', // Valid actions are activate_license, deactivate_license, get_version, check_license
license: '59cc77ea94a2d867069a9d96142a35b8', // License key.
item_id: '356', // Product ID
url: 'domain.com' // If you Disable URL Checking, you do not need this entry
};
xhttp.open("POST", postUrl, true);
xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhttp.setRequestHeader("Access-Control-Allow-Origin", "https://local.dev");
var values = '';
for (var key in data){
values += key + '=' + data[ key ] + '&';
}
values = values.substring(0, values.length - 1);
xhttp.send(values);
function handleSoftwareLicensingResponse( slData ) {
if ( slData.success == true ) {
console.log(slData);
// Software Licensing has a valid response to parse
} else {
// Invalid request was made to software licensing
}
}
