Gumroad ist eine Plattform über die du deine Produkte verkaufen kannst.
Mittlerweile bietet Gumroad auch an Lizenzschlüssel zu generieren, so kannst du Software auf deiner Webseite zum Download anbieten und den Lizenzschlüssel über Gumroad verkaufen.
Wenn der Kunde dann den Lizenzschlüssel eingibt kann deine Software eine Verbindung zu einem Gumroad-Server aufnehmen und den Schlüssel überprüfen.
In meinem Fall zeige ich dir wie das mit PHP funktioniert, wenn du zum Beispiel ein WordPress Plugin machst mit Premium-Funktionen.
Auf Gumroad findest du nur diese Information zu dem Thema: https://help.gumroad.com/11165-digging-deeper/license-keys
Ich habe nur sehr wenig im Internet speziell zu diesem Thema gefunden, deshalb musste ich mir dieses Wissen selbst zusammensuchen.
Mehr Informationen zu cURL auf Wikipedia und cURL auf php.net
Inhaltsverzeichnis
Die Funktion in PHP
function gumroad_licence($licence_key) { $curl = curl_init(); $post_data = array( 'product_permalink' => 'QMGY', 'license_key' => $licence_key, 'increment_uses_count' => 'false' ); $url = "https://api.gumroad.com/v2/licenses/verify"; curl_setopt($curl, CURLOPT_URL, $url); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); $result = curl_exec($curl); $array = json_decode($result, true); if ($array['success'] === true) { return $array; } else { return false; } curl_close($curl); }
Aufbau der Funktion
Die Funktion bekommt als Input den Lizenzschlüssel: $licence_key
curl_init();
startet die cURL-Abfrage.
Es handelt sich um eine Abfrage mit POST, deshalb werden hier folgende Werte in einem Array mitgegeben:
$post_data = array( 'product_permalink' => 'QMGY', 'license_key' => $licence_key, 'increment_uses_count' => 'false' );
Bei product_permalink steht in meinem Beispiel „QMGY“, das ist die ID deines Produktes auf Gumroad, als URL würde das so aussehen: https://gumroad.com/l/QMGY dabei handelt es sich um ein Lizenz-Demo-Produkt von Gumroad.
Als zweite wird license_key mitgegeben und increment_uses_count habe ich hier auf false gesetzt, wenn du es auf true setzt, dann wird bei jeder Abfrage ein Zähler um eins erhöht, mit false nicht, damit kannst du überprüfen wie oft dieser Lizenzschlüssel schon eingegeben wurde.
$url = "https://api.gumroad.com/v2/licenses/verify";
ist die API-URL von Gumroad.
Mit curl_setopt()
werden die Parameter der cURL-Abfrage gesetzt, diese kannst du so übernehmen.
curl_exec()
führt die cURL anweisung aus, da von Gumroad aber ein JSON-Format zurück kommt und ich aber ein assoziatives Array haben will verwende ich json_decode()
.
Die IF-Abfrage zum Schluss prüft ob der Lizenzschlüssel korrekt war , denn dann kommt ein „success“ von Gumroad zurück und ich gebe das Array als Rückgabe-Wert der Funktion zurück. Ansonsten wird false zurückgegeben.
Die Anwendung
Zur Überprüfung was von Gumroad alles als Antwort kommt kannst du das gesamten Rückgabe-Array mit var_dump()
einmal ausgeben:
$licence_key = "1234ABCD-1234ABCD-1234ABCD-1234ABCD"; $gumroad_array = gumroad_licence($licence_key); var_dump($gumroad_array);
Als Rückgabe bekommst du dann ein Array auf das du wie gewohnt zugreifen kannst mit Daten wie:
- Indikator ob der Schlüssel korrekt ist:
$gumroad_array['success']
- Dei Anzahl an Abfragen:
$gumroad_array['uses']
- Die E-Mail-Adresse des Käufers:
$gumroad_array['purchase']['email']
- Datum und Uhrzeit des Kaufes:
$gumroad_array['purchase']['created_at']
- Name des Produktes auf Gumroad:
$gumroad_array['purchase']['produkt_name']
- …
Es gibt noch mehr Daten die du abrufen kannst, diese siehst du aber bei der Ausgabe des Arrays mit var_dump($gumroad_array)
.
Thank you! Very helpful! But write in English please
Thank you, but this is a German-language blog and there is Google Translate.