Este documento es un subconjunto del documento de la API de licencias de software que enumera todas las funciones disponibles a través de la API. El siguiente es un código de ejemplo que muestra cómo implementar esas funciones con JavaScript.
Si estás usando jQuery, consulta nuestro ejemplo de jQuery.
Solicitud GET de ejemplo
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 );
} );
Solicitud POST de ejemplo
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 );
} );
Respuesta
Una respuesta a las consultas anteriores sería un objeto JSON que se vería algo así:
{
"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,
}
Solicitud de ejemplo para navegadores más antiguos
Los ejemplos anteriores están escritos teniendo en cuenta los navegadores modernos. Si necesitas compatibilidad con IE, es posible que prefieras usar un objeto 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
}
}
