<html lang="pt-br" dir="ltr"><head></head><body># API de Licenciamento de Software - Exemplo usando JavaScript

Este documento é um subconjunto do [documento da API de Licenciamento de Software](https://easydigitaldownloads.com/docs/software-licensing-api/) que lista todos os recursos disponíveis via API. O seguinte é um código de exemplo mostrando como implementar esses recursos com JavaScript.

Se você estiver usando jQuery, veja nosso [exemplo de jQuery](https://easydigitaldownloads.com/docs/software-licensing-api-example-using-jquery/).

### Exemplo de Requisição GET

```
const url = new URL( 'https://yoursite.com/' ); // Site com Licenciamento de Software ativado.
const urlParams = new URLSearchParams( {
			edd_action: 'check_license',
			license: '59cc77ea94a2d867069a9d96142a35b8', // Chave de licença
			item_id: '356', // ID do produto
			url: 'domain.com' // Domínio de onde a requisição está vindo.
		} );
url.search = urlParams.toString();
fetch( url.toString() )
		.then( response =&gt; {
			if ( response.ok ) {
				return response.json();
			} else {
				return Promise.reject( response );
			}
		} ).then( data =&gt; {
		// Licenciamento de Software tem uma resposta válida para analisar
		console.log( 'Resposta bem-sucedida', data );
	} ).catch( error =&gt; {
		// Tratamento de erro.
		console.log( 'Erro', error );
	} );
```

### Exemplo de Requisição POST

```
const formData = new FormData();
formData.append( 'edd_action', 'check_license' ); // Ações válidas são activate_license, deactivate_license, get_version, check_license
formData.append( 'license', '59cc77ea94a2d867069a9d96142a35b8' ); // Chave de licença
formData.append( 'item_id', '356' ); // ID do produto
formData.append( 'url', 'domain.com' ); // Se você desativar a verificação de URL, não precisará desta entrada.

// Site com Licenciamento de Software ativado.
fetch( 'https://yoursite.com/', {
		method: 'POST',
		body: formData
	} ).then( response =&gt; {
	if ( response.ok ) {
		return response.json();
	} else {
		return Promise.reject( response );
	}
} ).then( data =&gt; {
	// Licenciamento de Software tem uma resposta válida para analisar
	console.log( 'Resposta bem-sucedida', data );
} ).catch( error =&gt; {
	// Tratamento de erro.
	console.log( 'Erro', error );
} );
```

### Resposta

Uma resposta às consultas acima seria um objeto JSON que se pareceria com isto:

```
{
    "success": true,
    "license": "valid",
    "item_id": 12534,
    "item_name": "Nome do seu produto",
    "expires": "2022-02-26 23:59:59",
    "payment_id": 123456,
    "customer_name": "Jane Doe",
    "customer_email": "jane@sample.com",
    "price_id": 0,
}
```

---

### Exemplo de requisição para navegadores mais antigos

Os exemplos acima foram escritos com navegadores modernos em mente. Se você precisar de suporte para IE, talvez prefira usar um objeto XMLHttpRequest:

```
// Lidando com uma requisição de licenciamento de software sem jQuery em JavaScript puro. Suporte para navegadores mais antigos.
var xhttp = new XMLHttpRequest();

// A URL do site executando Easy Digital Downloads com Licenciamento de Software
var postUrl = 'https://yoursite.com/';

xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 &amp;&amp; xhttp.status == 200) {
        var slData = JSON.parse(xhttp.responseText);
        handleSoftwareLicensingResponse( slData );
    }   
}

var data = {
		edd_action: 'check_license', // Ações válidas são activate_license, deactivate_license, get_version, check_license
		license: '59cc77ea94a2d867069a9d96142a35b8', // Chave de licença.
		item_id: '356', // ID do produto
		url: 'domain.com' // Se você desativar a verificação de URL, não precisará desta entrada
};

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 ] + '&amp;';
}
values = values.substring(0, values.length - 1);

xhttp.send(values);


function handleSoftwareLicensingResponse( slData ) {
    if ( slData.success == true ) {
        console.log(slData);
        // Licenciamento de Software tem uma resposta válida para analisar
    } else {
        // Requisição inválida foi feita para o licenciamento de software
    }
}
```</body></html>