Questo documento è un sottoinsieme del documento API per le licenze software che elenca tutte le funzionalità disponibili tramite l'API. Di seguito è riportato un codice di esempio che mostra come implementare tali funzionalità con JavaScript.
Se stai usando jQuery, consulta il nostro esempio jQuery.
Richiesta GET di esempio
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 );
} );
Richiesta POST di esempio
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 );
} );
Risposta
Una risposta alle query precedenti sarebbe un oggetto JSON che assomiglierebbe a questo:
{
"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,
}
Richiesta di esempio per browser meno recenti
Gli esempi precedenti sono scritti pensando ai browser moderni. Se hai bisogno di supporto per IE, potresti preferire utilizzare un oggetto 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
}
}
