Zum Inhalt springen

Gumroad License Keys mit PHP und cURL überprüfen

PHP Tutorial - Gumroad License Keys mit PHP und cURL überprüfen

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

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);
}


Banner


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).

2 Gedanken zu „Gumroad License Keys mit PHP und cURL überprüfen“

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

drei + 2 =