Software Licensing API – Example using JavaScript
This document is a subset of the Software Licensing API document which lists all features available via the API. The following is example code showcasing how to implement those features with JavaScript.
If you’re using jQuery, see our jQuery example.
Sample GET Request
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 ); } );
Sample POST Request
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 ); } );
Response
A response to the above queries would be a JSON object that would look something like this:
{ "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, }
Sample request for older browsers
The above examples are written with modern browsers in mind. If you require IE support then you may prefer to use an XMLHttpRequest object:
// 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 = 'http://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", "http://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 } }