Inloggen
Aan de slag

Easy Digital Downloads Documentatie

Documentatie, Referentiemateriaal en Tutorials voor Easy Digital Downloads 

Softwarelicentie API

De API die is meegeleverd met de Software Licensing extensie stelt u in staat om licentiesleutels op afstand te activeren, te controleren of sleutels geldig zijn (en niet verlopen), en ook informatie op te halen over de nieuwste softwareversies. Deze API kan met de meeste software worden geïmplementeerd, niet alleen met WordPress Plugins en Thema's.

In Dit Artikel

Beschikbare API-verzoeken & Parameters
WordPress Plugin & Thema Integratie
Activeer een Licentiesleutel
Controleer of een Licentie Geldig / Actief is
Versie-informatie ophalen
Versies ophalen voor meerdere producten tegelijk
API-voorbeelden in andere talen
FAQ / Probleemoplossing


Er zijn vier soorten API-verzoeken beschikbaar:

  • activate_license – Gebruikt om een licentiesleutel op afstand te activeren
  • deactivate_license – Gebruikt om een licentiesleutel op afstand te deactiveren
  • check_license – Gebruikt om op afstand te controleren of een licentiesleutel is geactiveerd, geldig en niet verlopen
  • get_version – Gebruikt om op afstand de nieuwste versie-informatie voor een product op te halen

Elk van de onderstaande methoden werkt op dezelfde manier. De website-URL waarop u Easy Digital Downloads + Software Licensing hebt geïnstalleerd, fungeert als het API-eindpunt. Alle verzoeken aan de API worden gedaan als GET- of POST-verzoeken en volgen dit formulier:

https://YOURSITE.com/?edd_action={request type}&item_id={download ID here}&license=cc22c1ec86304b36883440e2e84cddff&url={url of the site being licensed}

Het verzoek vereist drie parameters en heeft één optionele parameter:

  • edd_action – Dit is het type verzoek (zie hieronder)
  • item_id – Gebruik de Download ID van uw downloadproduct. Dit is nauwkeuriger dan het gebruik van item_name.
    • In plaats van item_id kunt u ook item_name gebruiken, wat de naam van de download is in plaats van de ID. Het doorgeven van item_id heeft de voorkeur, omdat deze minder snel verandert. Als de item_name verandert, moet uw software worden bijgewerkt en zullen eerdere verwijzingen naar de oude naam niet meer werken.
  • license – Dit is de licentiesleutel waarvoor u een actie uitvoert
  • url – (optioneel) Dit is de site-URL waarvan het API-verzoek afkomstig is

URL Tip Desktop Software:
De url-parameter is niet beperkt tot URL's. Desktopsoftware kan bijvoorbeeld de url-parameter gebruiken voor een Systeem-ID of elke unieke tekst.

Licentiesleutels:

  • De API voor licentiesleutels ondersteunt alleen de volgende tekens [a-z, A-Z, 0-9, -, _].
  • Licentiesleutels kunnen een maximale lengte van 256 tekens hebben.

WordPress Plugins & Thema Integratie:
Raadpleeg de volgende documenten voor het integreren van de Software Licensing API met WordPress Plugins & Thema's:
Bekijk onze documentatie over hoe automatische upgrades voor uw WordPress plugins te integreren.
Bekijk onze documentatie over hoe automatische upgrades voor uw WordPress thema's te integreren

Activeer een Licentiesleutel

Om een licentie op afstand te activeren, is de URL die u zult gebruiken:

https://YOURSITE.com/?edd_action=activate_license&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com

De parameter item_id (item_id=8) wordt vervangen door de daadwerkelijke ID van uw product. U vindt dit in uw dashboard naast het product:

De parameter license is ingesteld op de licentiesleutel die u wilt activeren.

Het antwoord op dit verzoek zal een JSON-object zijn. Als de licentie succesvol is geactiveerd, zal het antwoord zijn:

{
    "success": true,
    "license": "valid",
    "item_id": false (or Item ID if passed)
    "item_name": "EDD Product Name",
    "license_limit": 0,
    "site_count": 2,
    "expires": "2020-06-30 23:59:59",
    "activations_left": "unlimited",
    "checksum": "<md5 checksum>",
    "payment_id": 12345,
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "price_id": "2"
}

Als de licentie ongeldig is en niet kon worden geactiveerd, zal het antwoord zijn:

{
    "success": false,
    "license": "invalid",
    "item_id": false (or Item ID if passed)
    "item_name": "EDD Product Name",
    "error": "expired",
    "expires": "2020-04-28 23:59:59",
    "license_limit": 0,
    "site_count": 1,
    "activations_left": "unlimited",
    "checksum": "<md5 checksum>",
    "payment_id": 12345,
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "price_id": "2" 
  } 
  

Mogelijke fouten:

"missing" - License doesn't exist
"missing_url" - URL not provided
"license_not_activable" - Attempting to activate a bundle's parent license
"disabled" - License key revoked
"no_activations_left" - No activations left
"expired" - License has expired
"key_mismatch" - License is not valid for this product
"invalid_item_id" - Invalid Item ID
"item_name_mismatch" - License is not valid for this product
"site_inactive" - Site is not active for this license
"invalid" - License key does not match
"valid" - License is valid

Controleer of een licentie geldig / actief is

Controleren of een licentie geldig en niet verlopen is, lijkt erg op activeren. Dit verzoek wordt meestal gedaan als u moet bevestigen dat een licentie nog steeds geldig is nadat deze is geactiveerd. Licenties verlopen na een jaar (standaard), dus dit is wat u zult gebruiken om te controleren of de licentie is verlopen.

Om een licentie op afstand te controleren, is de URL die u zult gebruiken:

https://YOURSITE.com/?edd_action=check_license&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com

De item_id parameter (item_id=8) zal worden vervangen door de daadwerkelijke ID van uw product. U kunt deze vinden in uw dashboard naast het product:

De license parameter is ingesteld op de licentiesleutel die u wilt controleren.

Het antwoord op dit verzoek zal een JSON-object zijn. Als de licentie actief en nog steeds geldig is, zal het antwoord zijn:

{
    "success": true,
    "license": "valid",
    "item_id": false, (or Item ID if passed)
    "item_name": "EDD Product Name",
    "checksum": "",
    "expires": "2020-06-30 23:59:59",
    "payment_id": 12345,
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "license_limit": 0,
    "site_count": 2,
    "activations_left": "unlimited",
    "price_id": "2"
}

Als de licentie ongeldig is, zal het antwoord zijn:

{
    "success": false,
    "license": "invalid",
    "item_id": false, (or Item ID if passed)
    "item_name": "EDD Product Name",
    "expires": "2014-10-23 00:00:00",
    "license_limit": 0,
    "site_count": 1,
    "activations_left": "unlimited",
    "checksum": "checksum",
    "payment_id": 54224,
    "customer_name": "John Doe",
    "customer_email": "[email protected]",
    "price_id": "2"
}

Mogelijke licentiestatussen:

"disabled" - License key revoked
"expired" - License has expired
"key_mismatch" - License is not valid for this product
"invalid_item_id" - Invalid Item ID
"item_name_mismatch" - License is not valid for this product

Versie-informatie ophalen

Het ophalen van de versie-informatie stelt u in staat om op afstand gegevens op te halen over het nieuwste versienummer, inclusief wijzigingslogboeken en downloadlinks voor updatebestanden.

Om versie-informatie voor een licentiesleutel te krijgen:

https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com

De item_id parameter (item_id=8) zal worden vervangen door de daadwerkelijke ID van uw product. U kunt deze vinden in uw dashboard naast het product:

Opmerkingen over het verzoek:

  • Als u item_name gebruikt in plaats van item_id, voer dan de titel van het product in Easy Digital Downloads exact in. Het gebruik van item_id is nauwkeuriger.
  • De parameters license en url zijn optioneel. Als ze worden weggelaten, wordt de nieuwste versie-informatie opgehaald, maar wordt er geen downloadlink opgenomen.
  • Vanaf Software Licensing 3.8 kunt u platformversies in het verzoek opnemen. Als de platformversie niet voldoet aan de minimale vereisten die zijn ingesteld voor het product in Easy Digital Downloads, zal de new_version in het antwoord false zijn in plaats van het nieuwe versienummer. php_version en wp_version worden standaard ondersteund.

Het antwoord zal een JSON-object zijn dat er ongeveer zo uitziet:

{
  "new_version": "2.0",
  "stable_version": "2.0",
  "name": "Restrict Content Pro",
  "slug": "restrict-content-pro",
  "url": "https://edd.com/downloads/restrict-content-pro/?changelog=1",
  "last_updated": "2017-01-03 11:59:46",
  "homepage": "https://edd.com/downloads/restrict-content-pro/",
  "package": "",
  "download_link": "",
  "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
  "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
}

Opmerkingen over het antwoord:

  • Als er geen licentiesleutel wordt verstrekt in het get_version-verzoek, wordt de versie-informatie nog steeds geretourneerd; de package- en downloadwaarden zullen echter leeg zijn. Omgekeerd, als er een licentiesleutel wordt verstrekt, maar deze behoort niet tot de item_id of item_name in het verzoek, wordt een foutmelding geretourneerd met een reden als msg-waarde.
  • Een download_link wordt opgenomen als er een bestand bestaat, ongeacht de status van de licentie. De download werkt echter niet, tenzij de licentie actief is. Dit stelt sites met een verlopen licentie in staat om deze te vernieuwen, maar hoeft niet te wachten tot de update-cache is gewist voordat de update wordt verkregen.
  • De sections eigenschap is een geserialiseerd array dat de volledige productbeschrijving en het wijzigingslogboek bevat. Bij gebruik van ReadMe.txt parsing voor WordPress-plugins, zal het ook aanvullende informatie bevatten die via het readme-bestand wordt verstrekt.

Als u informatie wilt ophalen over een bètaversie, voegt u &beta=1 toe aan de URL van uw API-verzoek, als volgt:

https://YOURSITE.com/?edd_action=get_version&item_id=8&license=cc22c1ec86304b36883440e2e84cddff&url=https://licensedsite.com&beta=1

Versies ophalen voor meerdere producten tegelijk

Haal versies op voor meerdere producten in één verzoek, met behulp van het argument products. Dit argument accepteert een array van items. Elk item moet dezelfde argumenten bevatten die in een enkel verzoek worden verzonden.

Hier is een voorbeeld met cURL:

curl -d edd_action=get_version -d products[0][item_id]=356 -d products[0][license]=59cc77ea94a2d867069a9d96142a35b8 -d products[0][url]="https://licensedsite.com" -d products[1][item_id]=46 -d products[1][license]=5cdd12a966c498fc6e423e261fe05303 -d products[1][url]="https://licensedsite.com" https://YOURSITE.com

En hier is een voorbeeld met de WordPress
wp_remote_post() functie:

$response = wp_remote_post( 'https://YOURSITE.com', array(
	'body' => array(
		'edd_action' => 'get_version',
		'products'   => array(
			'my-first-plugin' => array(
				'item_id' => 356,
				'license' => '59cc77ea94a2d867069a9d96142a35b8',
				'url'     => 'https://licensedsite.com'
			),
			'my-second-plugin' => array(
				'item_id' => 46,
				'license' => '5cdd12a966c498fc6e423e261fe05303',
				'url'     => 'https://licensedsite.com'
			)
		)
	)
) );

De reactie zal een JSON-object zijn met resultaten voor elk van de opgegeven producten. De product-sleutels die u in het verzoek hebt opgegeven, blijven behouden in de reactie. Hier is een voorbeeld:

{
  "my-first-plugin": {
    "new_version": "2.0",
    "stable_version": "2.0",
    "name": "My First Plugin",
    "slug": "my-first-plugin",
    "url": "https://edd.com/downloads/my-first-plugin/?changelog=1",
    "last_updated": "2021-01-03 11:59:46",
    "homepage": "https://edd.com/downloads/my-first-plugin/",
    "package": "",
    "download_link": "",
    "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
    "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
  },
  "my-second-plugin": {
    "new_version": "1.3",
    "stable_version": "1.3",
    "name": "My Second Plugin",
    "slug": "my-second-plugin",
    "url": "https://edd.com/downloads/my-second-plugin/?changelog=1",
    "last_updated": "2021-03-08 11:59:46",
    "homepage": "https://edd.com/downloads/my-second-plugin/",
    "package": "",
    "download_link": "",
    "sections": "a:2:{s:11:"description";s:793:"<p>Placerat porta in enim, urna cras, adipiscing augue dis lorem, pulvinar, natoque phasellus eu tincidunt, dictumst nunc ut dignissim turpis ac, pulvinar! Massa! Sed, enim, eu ac augue placerat scelerisque! Eu cursus, ridiculus cum nec lorem, natoque lorem dictumst amet! Nunc placerat dapibus enim dignissim, nunc mattis vel? Dolor nascetur placerat ridiculus augue massa porttitor turpis auctor, etiam et nisi pid ridiculus nisi duis ac. Turpis et non, dapibus diam! Placerat vel? Et, velit turpis mus sociis arcu, vel magna. Habitasse elementum elit cum nec est, eu, montes egestas est mattis lacus, turpis urna parturient, egestas, integer augue, penatibus natoque elit, rhoncus mid elementum, integer vut turpis. Et? Nisi pid. Nec, placerat ut tristique lorem a nunc velit nunc est.</p>n";s:9:"changelog";s:0:"";}",
    "banners": "a:2:{s:4:"high";s:0:"";s:3:"low";s:0:"";}"
  }
}

Toegang tot de API in andere talen

Omdat de API eenvoudige HTTP POST-verzoeken gebruikt, is deze in vrijwel elke taal toegankelijk. Hier zijn enkele voorbeelden.

FAQ / Probleemoplossing

Kan ik aangepast opgemaakte sleutels maken?

Het standaard sleutelformaat is een eenvoudige md5-som.
U kunt dat formaat naar wens aanpassen.

Hoe voorkom ik toegang tot mijn software, plugin of thema als de licentie is verlopen of uitgeschakeld?

De status van deze licentie heeft geen invloed op de software, het geeft slechts de status van de sleutel aan. Het is aan de ontwikkelaar om die status te lezen om iets te doen. Als een sleutel bijvoorbeeld Verlopen is, kan de software ervoor kiezen om niet meer te werken of een waarschuwing weer te geven.

Eén uitzondering hierop is dat wanneer EDD een verlopen of uitgeschakelde sleutel koppelt aan een download, downloadlinks, inclusief de get_version-link, niet zullen werken. Daarom zullen updates niet meer werken via het get_version-antwoord.

Als u problemen ondervindt bij het activeren van licentiesleutels in uw implementatie van
Software Licensing, zijn hier enkele tips om veelvoorkomende problemen op te lossen.

Verzoeken geblokkeerd door een beveiligingsplugin

Beveiligingsplugins voor WordPress hebben vaak functies die interfereren met de licentiesleutel API-verzoeken. Deze functies maken de activering (en andere API-verzoeken) vaak een onverwacht antwoord geven, waardoor de activeringsroutine mislukt.

U kunt bijvoorbeeld een antwoord als dit van de server krijgen als u een beveiligingsplugin heeft die interfereert:

[response] => Array
	(
		[code] => 403
		[message] => Forbidden
)

De iThemes Security-plugin heeft een instelling die dit probleem kan veroorzaken. De instelling heet
Filter Suspicious Query Strings in the URL

Om het probleem op te lossen, schakelt u eenvoudig de instelling
Filter Suspicious Query Strings in the URL uit. Als u geen iThemes Security gebruikt, zal deze anders heten, maar vergelijkbaar zijn.

Verzoeken geblokkeerd door speciale .htaccess-regels

Sommige sites voegen speciale regels toe aan het .htaccess-bestand om bepaalde IP-adressen te blokkeren of extra bescherming aan de site toe te voegen.

Als u speciale .htaccess-regels heeft ingesteld en licentiesleutels niet worden geactiveerd, probeer dan de regels te verwijderen en vervolgens licentiesleutels te activeren. Als de licentiesleutels nu correct worden geactiveerd, moet u de regels aanpassen om de licentie-API-routines te laten functioneren.

Verzoeken geblokkeerd door een "binnenkort" of "onderhoudsmodus" plugin

Als u een "binnenkort" of "onderhoudsmodus" plugin gebruikt, is het waarschijnlijk dat licentiesleutels niet kunnen worden geactiveerd, aangezien de "binnenkort" / "onderhoudsmodus" plugin de verzoeken zal blokkeren. Om het probleem op te lossen, deactiveert u eenvoudig de onderhoudsmodus of de "binnenkort" plugin. Als u deze actief wilt laten, deactiveert u deze tijdelijk om het activeringsproces van de licentiesleutel te testen en activeert u de plugin vervolgens opnieuw.

Was dit artikel nuttig?

Begin vandaag nog met verkopen!

Sluit u aan bij meer dan 50.000 slimme winkel eigenaren, en begin met de eenvoudigste manier om digitale producten te verkopen met WordPress.

Copyright © 2025 Sandhills Development, LLC

[universally_switcher]