smartEngin Licence & buy

Verkaufe digitale Produkte & lizenzierte Software online

Für Entwickler und Anbieter digitaler Produkte, die selbst verkaufen wollen: smartEngin Licence & buy macht deine WordPress-Seite zum eigenen Verkaufs-, Lizenz- und Update-Server – für Plugins, Themes, E-Books, Software (WordPress-Plugins, WordPress-Themes, Windows, macOS, Linux) oder jede Datei.

Alles, was den Verkauf von digitalen Produkten bisher mühsam gemacht hat – gelöst – Software verkaufen und lizenzieren

Software (WordPress-Plugins, WordPress-Themes, Windows, macOS, Linux) selbst zu verkaufen scheitert selten am Wollen – sondern an Technik, Übersicht und Papierkram. Genau da setzt smartEngin Licence & buy an.

ProblemLösung mit smartEngin Licence & buy
Wie verkaufe ich selbst digitale Produkte & Software Mit smartEngin Licence & buy verkaufst du deine Produkte selbst ohne Abhängigkeit von Fremdanbietern
„So ein Lizenz- und Shop-System einzurichten klingt nach Entwickler-Arbeit.“Alles über Schalter und Felder im Backend – und wenn du nicht weiterkommst, führt dich ChatGPT oder Claude Schritt für Schritt durch (das Plugin liefert der KI deinen Stand). Kein Code.
„Verkaufsseiten sehen oft technisch und lieblos aus – das schreckt Käufer ab.“Hübsche, anpassbare Angebotskarten, die zu deiner Marke passen und Vertrauen schaffen.
Wie viel habe ich eigentlich verkauft? Man wühlt in Stripe/PayPal und verliert den Überblick.“Ein eingebautes Statistik-Dashboard: Umsatz, Bestellungen, Lizenzen und Kunden auf einen Blick.
„Für jede Bestellung eine ordentliche Rechnung schreiben – lästig und fehleranfällig.“Automatische Rechnung mit lückenloser Rechnungsnummer für jeden Kauf, direkt als HTML zum Drucken/als PDF Speichern.
„Mal Einmalkauf, mal Abo – die meisten Tools zwingen dir ein Modell auf.“Pro Produkt frei wählbar: Einmalkauf, Lifetime oder Abo (monatlich/jährlich), automatisch abgerechnet.

So läuft ein Verkauf ab – vollautomatisch

Vom Angebot bis zur Auslieferung passiert alles von selbst – du musst nach dem Einrichten nichts mehr anfassen.

1 · Angebote

Du zeigst deine Angebotskarten auf einer Seite – der Kunde wählt seine Option: Einmalkauf, Lifetime oder Abo.

2 · Bestellung

Ein Klick auf „Bestellen“ genügt – der Kunde bleibt die ganze Zeit auf deiner Seite.

3 · Bezahlung

Sicher bezahlen per PayPal oder mit Karte, SEPA und Apple/Google Pay über Stripe – die Kartendaten sehen weder du noch deine Seite.

4 · Lizenz / Produkt

Sofort bekommt der Kunde Lizenzschlüssel, Download und Rechnung automatisch per Mail – Updates landen später von selbst in seinem Dashboard.

Kein manuelles Verschicken, keine Zwischenschritte – dein Shop arbeitet, während du an deinem Produkt arbeitest.

Verkaufe digitale Produkte bereits mit der Free-Version – – –


Kommst du nicht weiter, führt dich ChatGPT oder Claude Schritt für Schritt durch – das Plugin liefert der KI deinen Stand. Dadurch ist eine schnelle und sichere Einrichtung möglich.
Alle Login-/Zugriffsversuche protokolliert; self-hosted; Kartendaten bleiben bei Stripe/PayPal.
Statistik-Dashboard mit Umsatz, Bestellungen, Lizenzen und Kunden auf einen Blick; Kundenkonto.
Für jeden Kauf automatisch eine Rechnung mit lückenloser Nummer; §19 ⇄ USt. per Schalter; Gutschriften.
Automatische Lizenzschlüssel, Aktivierungslimits, geschützte Downloads – und Updates im WP-Dashboard wie gewohnt.
Hübsche, anpassbare Angebotskarten; Einmalkauf, Lifetime oder Abo; Stripe & PayPal.

Du hast bisher die Wahl zwischen einem teuren Add-on-Stack (EDD & Co.) und Plattformen, die mitverdienen und deine Kunden besitzen. smartEngin Licence & buy verbindet beide Seiten – ohne die Schattenseiten.

Vergleichstabelle

smartEngin Licence & buy EDD + Add-ons / WooCommerce Verkaufsplattform (Gumroad & Co.)
Gebühren pro Verkauf Keine — nur die üblichen Stripe-/PayPal-Gebühren Keine — aber Jahresgebühr für die Plugins (EDD-Lizenzfunktion regulär 599 €/Jahr, WooCommerce-Abos ca. 200 $/Jahr extra) 10 % + 0,50 $ je Verkauf, 30 % über die Plattform-Suche — zusätzlich zur Kartengebühr
Alles in einem Plugin Verkauf, Abos, Lizenzschlüssel, Updates, Rechnung, Kundenkonto, Partnerprogramm — ein Plugin, ein Anbieter ~ EDD: vieles im Jahres-Paket; WooCommerce: aus Plugins mehrerer Anbieter zusammenzusetzen ~ Ja, aber alles läuft in deren System
Auto-Updates im WordPress-Dashboard des Kunden Eingebaut, für Plugins und Themes, mit Echtheitsprüfung der Datei ~ EDD: ja, aber nur im teuersten regulären Paket; WooCommerce: nur mit Zusatzlösungen Nein
Nicht-WordPress-Software (z. B. Windows-Programme) Lizenz prüfen und Updates ausliefern ~ EDD: ja (im Professional-Paket); WooCommerce: nur mit Zusatz-Plugins ~ Nur Lizenz prüfen — keine Update-Auslieferung
Rechnungen Eingebaut: lückenlose Rechnungsnummer, Storno per Gutschrift, drucken / als PDF speichern Nur über Zusatz-Erweiterungen ~ Belege kommen von der Plattform, in deren Format
Deine Kunden & Daten Auf deiner Website, in deiner Datenbank Auf deiner Website Auf fremden (meist US-)Servern; die Plattform tritt als Verkäufer auf
Partnerprogramm Eingebaut: Bewerbung, Partnerbereich, Provisionen, Auszahlungsliste Nur mit zusätzlicher kostenpflichtiger Software Vorhanden — aber in deren System
KI-geführte Einrichtung Eingebautes Handbuch + Ist-Zustand über eine sichere Lese-Schnittstelle — ChatGPT/Claude helfen direkt beim Einrichten Nicht eingebaut Nicht eingebaut

Deine Plattform, deine Kunden, deine Einnahmen – mit der Einfachheit einer fertigen Lösung.

Zulässige Dateiformate für den Verkauf mit smartEngin Licence & buy

Kategorie Erlaubte Dateitypen Modell im Backend
Digitale Produkte Datei-Produkte, E-Books, Medien, Dokumente und weitere Downloads
Dokumente & E-Books PDF, EPUB, MOBI, AZW3, DOC, DOCX, ODT, RTF, PAGES „Datei-Produkt“ (Deliverable) siehe Dateitypen die mit der Free-Version verkauft werden können: smartEngin buy
Vorlagen & Office XLS, XLSX, ODS, PPT, PPTX, ODP, NUMBERS, KEY
Daten & Text CSV, TSV, JSON, XML, YAML, YML, MD, TXT
Archive / Downloadpakete ZIP, RAR, 7Z, TAR, GZ, TGZ, BZ2, XZ
Bilder & Grafiken JPG, JPEG, PNG, GIF, WEBP, SVG, TIF, TIFF, BMP, ICO
Audio MP3, WAV, M4A, AAC, FLAC, OGG, OGA
Videos MP4, MOV, WEBM, M4V, AVI, MKV
Design-Dateien PSD, AI, EPS, INDD, SKETCH, FIG, XD, AFDESIGN, AFPHOTO
Software & Apps EXE, MSI, DMG, PKG, DEB, APK, APPIMAGE
3D-Modelle STL, OBJ, FBX, GLB, GLTF, 3MF, BLEND
CAD / Technik DWG, DXF, STEP, STP, IGES, IGS
Schriften TTF, OTF, WOFF, WOFF2
Software-Produkte
WordPress (Plugin) ZIP Plattform „WordPress plugin“
WordPress Themes ZIP Plattform „WordPress theme“
Windows EXE, MSI, ZIP Plattform „Windows app“
macOS ZIP, DMG, PKG, GZ, TGZ Zusätzlich erlaubt: EXE, MSI, DEB, APPIMAGE Plattform „macOS / Linux / other“
Linux ZIP, DEB, APPIMAGE, GZ, TGZ Zusätzlich erlaubt: EXE, MSI, DMG, PKG Plattform „macOS / Linux / other“

Du wünschst eine kostenfreie und persönliche Beratung zu smartEngin Licence & buy?


Kaufoptionen

Pro – Jahresabo

smartEngin Licence & buy – Verkaufe digitale Produkte & lizenzierte Software online

79,50 € / Jahr
1 Website / Gerät
  • Verkauf digitaler Produkte
  • Verkauf lizenzierter Software-Produkte für WordPress, Windows, macOS und Linux
  • Statistik-Dashboard mit Umsatz, Bestellungen, Lizenzen
  • Automatische HTML-Rechnung – per Browser mit einem Klick als PDF speicherbar
  • Automatische Mailbenachrichtigungen und Erinnerungsmails
  • Individuelle Gutscheinaktionen
  • Übersichtsboards für Bestellungen, Rechnungen, Zahlungen und aktiver sowie passiver oder abgelaufener Lizenzen
  • Aufzeichnung unautorisierter Loginversuche
  • Einrichtungsassistent mit Claude oder ChatGPT

Kleinunternehmerregelung § 19 UStG — keine USt berechnet

Pro – Lifetime

smartEngin Licence & buy – Verkaufe digitale Produkte & lizenzierte Software online

199,00 €
1 Website / Gerät
  • Verkauf digitaler Produkte
  • Verkauf lizenzierter Software-Produkte für WordPress, Windows, macOS und Linux
  • Statistik-Dashboard mit Umsatz, Bestellungen, Lizenzen
  • Automatische HTML-Rechnung – per Browser mit einem Klick als PDF speicherbar
  • Automatische Mailbenachrichtigungen und Erinnerungsmails
  • Individuelle Gutscheinaktionen
  • Übersichtsboards für Bestellungen, Rechnungen, Zahlungen und aktiver sowie passiver oder abgelaufener Lizenzen
  • Aufzeichnung unautorisierter Loginversuche
  • Einrichtungsassistent mit Claude oder ChatGPT

Kleinunternehmerregelung § 19 UStG — keine USt berechnet

Warum du smartEngin Licence & buy vertrauen kannst

Wir setzen es selbst ein: smartEngin Forms Pro wird über genau dieses Plugin verkauft, lizenziert und aktualisiert – und auch smartEngin Licence & buy.

  • 🇩🇪 Für deutsche Anforderungen: §19 ⇄ USt. – lückenlose Rechnungen – deutschsprachig & englischsprachig, für deutsche Anforderungen gebaut
  • 🔒 DSGVO-freundlich & self-hosted – deine Daten bleiben bei dir
  • 💳 Zahlung über Stripe & PayPal – Kartendaten bleiben dort, nie bei dir
  • ♾️ keine Umsatzbeteiligung
  • 🛡️ Kein-Bricking-Garantie – ein Serverausfall stoppt nie die Software deiner Kunden
  • 🛟 Persönlicher Support – direkter Draht zum Entwickler

FAQ

Fallen laufende Kosten oder eine Umsatzbeteiligung an?

Nein. Keine Fixkosten, keine Beteiligung an deinen Verkäufen. Es fallen nur die üblichen Transaktionsgebühren von Stripe/PayPal sowie der Kauf des Plugins an.

Brauche ich einen eigenen Server oder eine Subdomain?

Nein. Es läuft auf deiner ganz normalen WordPress-Seite – normales Hosting genügt. Du hast dennoch die Möglichkeit, eine eigene Subdomain anzulegen um Lizenzserver und Webseite voneinander zu trennen.

Brauche ich Programmierkenntnisse?

Nein. Alles läuft im Backend über Schalter und Felder. Und wenn du nicht weiterkommst, führt dich ChatGPT oder Claude Schritt für Schritt durch die Einrichtung.

Kann ich Einmalkäufe und Abos verkaufen?

Ja – pro Produkt frei wählbar: Einmalkauf, Lifetime oder Abo (monatlich/jährlich), automatisch über Stripe/PayPal abgerechnet.

Ist die Bezahlung sicher?

Ja. Bezahlt wird über Stripe und PayPal; die Kartendaten bleiben immer beim Zahlungsanbieter – sie liegen nie auf deiner Seite.

Bekomme ich ordentliche Rechnungen (§19 / USt.)?

Ja. Für jeden bezahlten Kauf entsteht automatisch eine Rechnung mit lückenloser Nummer; §19 ⇄ USt. lässt sich per Schalter umstellen. (Für deine konkrete steuerliche Lage ist dein Steuerberater zuständig – das Plugin liefert die Mechanik.)

Was passiert, wenn der Lizenzserver mal ausfällt?

Nichts Schlimmes: Die Software deiner Kunden läuft mit ihrem letzten Status einfach weiter – nur Updates pausieren kurz. Wir nennen das die Kein-Bricking-Garantie.

Kann ich auch Dateien (E-Books, PDFs, Dateien) oder Nicht-WordPress-Software verkaufen?

Ja. Es gibt zwei Produkttypen – Lizenz-Produkt (mit Schlüssel) und Datei-Produkt (reiner Download). Der Lizenzserver ist zudem plattform-neutral, du kannst also z. B. auch eigene Software außerhalb von WordPress lizenzieren.

Brauche ich eigene Stripe-/PayPal-Konten?

Ja, deine eigenen – du hinterlegst einmal deine Zugangsschlüssel, dann läuft die Zahlung direkt auf dein Konto.

In kürzester Zeit startklar

Kurz-Überblick (Schnellstart):

Plugin installieren & Lizenzschlüssel eintragen
Stripe und/oder PayPal verbinden (einmal deine Zugangsschlüssel hinterlegen)
Erstes Produkt + Kaufoption anlegen
Angebotskarten per Block/Shortcode auf eine Seite setzen – fertig
Die vollständige Schritt-für-Schritt-Anleitung findest du direkt im Plugin unter Hilfe & Doku.

Highlight – Lass dich von einer KI durch die Einrichtung führen:

Weg 1 · Briefing kopieren – für jeden ChatGPT-/Claude-Chat

Im Plugin unter Hilfe & Doku klickst du auf „Einrichtungs-Briefing für eine KI kopieren“ und fügst es in ChatGPT oder Claude ein. Das Briefing enthält, wie das Plugin funktioniert und deinen aktuellen Einrichtungsstand (ohne Geheimnisse). Schreib „Führ mich Schritt für Schritt durch die Einrichtung“ – die KI kennt deine Lage und leitet dich in deiner Sprache.

Weg 2 · Lesende KI-Verbindung – für werkzeug-angebundene KI

Unter REST API erlaubst du die Verbindung und erzeugst einen Code. Eine KI, die eigene HTTP-Anfragen senden kann (z. B. Claude Code, ein Custom-GPT mit Action oder ein Claude-Connector), liest damit deinen Einrichtungsstand direkt – nur lesen, nie Geheimnisse, jederzeit widerrufbar – und kontrolliert die Konfiguration mit.
Hinweis: Im normalen ChatGPT-/Claude-Browser-Chat funktioniert Weg 2 nicht (der kann keinen Verbindungscode als Header senden) – dort ist Weg 1 dein Weg.


Entwicklerdokumentation für smartEngin Licence & buy


Für WordPress-Entwickler: verkaufe & lizenziere dein eigenes Plugin

smartEngin Licence & buy kann auch deine Software lizenzieren. Baue eine winzige, build-freie PHP-Bibliothek in dein WordPress-Plugin ein — sie aktiviert eine Website, hält den Lizenzstatus und liefert automatische Updates, über eine einfache REST-API. Ein Lizenzschlüssel ist nur ein Token, das dieser Server ausgibt; es gibt nichts zu „entschlüsseln“.

Überblick · Schnellstart · Gib es deiner KI · API-Referenz

Schnellstart (≈15 Zeilen)

  1. Lege dein Produkt auf deinem Server an (Licence & buy → Products): setze einen slug und eine latest version.
  2. Bündle die Bibliothek in deinem Plugin unter lib/smartengin-licence-client/.
  3. Erzeuge eine Self_Client-Instanz in deiner Haupt-Plugin-Datei (server_url = deine eigene Seite, auf der Licence & buy läuft):
require_once __DIR__ . '/lib/smartengin-licence-client/self-client.php';

$GLOBALS['my_licence'] = new Self_Client( array(
    'server_url'  => 'https://deine-seite.de', // dein eigener Lizenzserver — an EINER Konstante halten
    'slug'        => 'mein-plugin-slug',        // = Produkt-Slug auf DEINEM Server
    'plugin_file' => __FILE__,
    'version'     => '1.0.0',
) );

// Lizenz-Panel irgendwo im Admin anzeigen:
$GLOBALS['my_licence']->render_panel();

// Premium-Funktionen FAIL-OPEN freischalten (active/expired = lizenziert):
$s = $GLOBALS['my_licence']->get_state();
$licensed = in_array( $s['status'], array( 'active', 'expired' ), true );

Updates laufen danach automatisch über die normalen WordPress-Update-Bildschirme. Halte dich an das Prinzip B + C: ohne gültigen Schlüssel keine Updates; Premium-Funktionen aus, aber der freie Kern und die Nutzerdaten bleiben erhalten; niemals ein „tot ohne Schlüssel“-Modus. Halte den Client fail-open — ist dieser Server nicht erreichbar, läuft das Plugin auf dem letzten bekannten Stand weiter.

Gib das deiner KI

Kopiere den Block unten in ChatGPT oder Claude (zusammen mit deinem Plugin) — die KI kann dann die ganze Integration für dich übernehmen.

Kontext für die KI: Ich möchte mein eigenes WordPress-Plugin mit smartEngin Licence & buy lizenzieren und verkaufen. Es funktioniert über eine kleine, build-freie PHP-Bibliothek (Self_Client), die mit einem Lizenzserver über die REST-API sels/v1 spricht. Ein Lizenzschlüssel ist ein zufälliges, serverseitig gespeichertes Token — clientseitig nichts zu entschlüsseln. Die Durchsetzung liegt nur auf dem Server; der Client muss fail-open sein und dem Prinzip B + C folgen (ohne gültigen Schlüssel keine Updates; Premium aus, freier Kern und Daten bleiben; niemals „tot ohne Schlüssel“).

Tu Folgendes: (1) bündle die Bibliothek unter lib/smartengin-licence-client/; (2) erzeuge EINE Self_Client-Instanz mit server_url, slug, plugin_file, version, und halte die Server-URL an einer einzigen Konstante; (3) zeige render_panel() in meinem Admin; (4) schalte Premium-Funktionen mit einer is_licensed()-Hilfsfunktion frei, die get_state() liest und active/expired als lizenziert behandelt. Baue keinerlei Code-Verschleierung oder Kopierschutz-Tricks ein.

Referenz (öffentlich, roh):
Repository: https://github.com/smartEngin-de/smartengin-licence-client
Integrationsleitfaden: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/integration-guide.md
REST-Referenz: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/rest-reference.md
OpenAPI: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/openapi.yaml
Beispiel-Plugin: https://github.com/smartEngin-de/smartengin-licence-client/tree/main/example/smartengin-licence-example

Was Lizenzierung leistet — ehrlich

Die Lizenzierung von selbstgehostetem PHP ist eine Geschäftsmechanik, kein Kopierschutz: der Code läuft auf dem Server des Kunden, und WordPress-Plugins sind GPL. Die echte Durchsetzung liegt serverseitig — der Update-Kanal, signierte Downloads und Aktivierungslimits. Genau das liefert dieser Server. Halte den Client fail-open, liefere ein gutes Produkt — den kaufmännischen Unterbau erledigt das Lizenzsystem.

Lizenz-API-Referenz (sels/v1)

Das sind die Endpunkte, die ein lizenziertes Produkt nutzt. Die Client-Bibliothek ruft sie für dich auf; diese Referenz dient zum Verständnis, zum Debuggen oder zum Anbinden von Nicht-WordPress-Software in beliebiger Sprache. Basis-URL: https://smartengin.de/wp-json/sels/v1

  • Transport: HTTPS. Auth: keine — der Lizenz-Schlüssel ist der Berechtigungsnachweis.
  • Identität: jeder Aufruf sendet product (slug), instance (der Website-Host, z. B. example.com) und instance_type (domain).
  • Fehler: JSON { "success": false, "error": "<slug>", "message": "…" } mit passendem HTTP-Status.
EndpunktMethodeZweckWichtige Parameter
/activatePOSTWebsite mit einem Schlüssel registrieren (idempotent). Liefert status, valid_until, activations_left.key, product, instance
/deactivatePOSTAktivierungs-Slot einer Website freigeben (idempotent).key, instance
/validatePOSTStatus eines Schlüssels neu prüfen. Blockiert nie (unbekannter Schlüssel → valid:false).key, product, instance
/updateGETWordPress-Update-Prüfung. Liefert eine signierte, kurzlebige Paket-URL nur für eine gültige Lizenz.key, product, version, instance
/downloadGETLiefert das Update-Paket für ein signiertes Token aus /update.token

Lizenz-Status-Werte: active · expired (Software läuft weiter, Updates pausiert) · refunded / disabled · unknown.

Maschinenlesbar & vollständige Referenz

Beispiel (activate, beliebige Sprache):

curl -sS -X POST "https://smartengin.de/wp-json/sels/v1/activate" \
  -d "product=mein-plugin-slug" \
  -d "instance=example.com" \
  -d "instance_type=domain" \
  -d "key=XXXX-XXXX-XXXX-XXXX-XXXX"

Für Entwickler: Windows- & Desktop-Software verkaufen & aktualisieren

Kein WordPress? Derselbe Server lizenziert und aktualisiert auch Software außerhalb von WordPress — vor allem Windows-Desktop-Apps. Der Kunde bekommt neue Versionen still im Hintergrund, so wie sich WordPress-Plugins selbst aktualisieren. Ein fertiger .NET/C#-Referenzclient übernimmt Aktivierung, ausfallsichere Prüfung und das stille Selbst-Update; über dieselbe REST-API funktioniert jede Sprache.

Dieser Abschnitt ist für Software außerhalb von WordPress. Für WordPress-Plugins siehe den Abschnitt darüber — der nutzt die build-freie PHP-Bibliothek.

Schnellstart (.NET / C#)

  1. Produkt anlegen (Licence & buy → Products): Plattform auf Windows-App (.exe / .msi), einen Slug und eine Latest Version setzen, deine .exe/.msi als Paket hochladen.
  2. Den .NET-Referenzclient in deine App einbinden — drei Stellen:
// (1) ERSTE Zeile in Main — Selbst-Update-Helfer behandeln, dann normal weiter.
if ( Updater.TryRunUpdaterMode( args ) ) return;

// (2) Einmal konfigurieren (Server-URL an EINER Stelle halten).
var options = new LicenceOptions {
    ServerBaseUrl = "https://deine-server-adresse.example",
    ProductSlug   = "dein-produkt-slug",   // = Produkt-Slug auf dem Server
    AppVersion    = "1.0.0",               // installierte Version
};
var client  = new LicenceClient( options );
var updater = new Updater( options );

// (3) Aktivieren / prüfen / aktualisieren.
await client.ActivateAsync( key );                  // dieses Gerät aktivieren
var status = await client.ValidateAsync( key );     // status.FeaturesEnabled schaltet Premium frei (fail-open)
var update = await updater.CheckForUpdateAsync( key );
if ( update is not null ) {
    var paket = await updater.DownloadAndVerifyAsync( update );  // prüft SHA-256, wirft bei Manipulation
    updater.ApplyUpdateAndRestart( paket );                     // ersetzt die .exe und startet neu
}

Eine neue Version ausliefern? Im Produkt die Latest Version hochzählen, die neue .exe/.msi hochladen, speichern — den Rest erledigt der Server.

Wie das stille Update funktioniert

Eine laufende Single-File-.exe sperrt ihre eigene Datei und kann sich nicht selbst überschreiben. Deshalb: Der Client lädt die neue .exe, prüft ihre SHA-256– Prüfsumme, startet einen winzigen Austausch-Helfer, beendet die App — der Helfer wartet, ersetzt die Datei und startet sie neu. Updater.TryRunUpdaterMode(args) in der ersten Main-Zeile ist genau dieser Helfer. Eine .msi wird stattdessen still per msiexec installiert.

Gib das deiner KI

Kopiere den Block unten in ChatGPT oder Claude (zusammen mit deiner App) — die KI baut die Integration ein.

Kontext für die KI: Ich möchte meine Windows-/.NET-Desktop-App mit smartEngin Licence & buy lizenzieren und automatisch aktualisieren. Es gibt einen fertigen .NET/C#-Referenzclient (SmartEngin.Licence: LicenceClient + Updater), der über die REST-API sels/v1 mit dem Server spricht. Ein Lizenzschlüssel ist ein zufälliges, serverseitig gespeichertes Token; die Aktivierungs-Kennung ist eine anonyme Geräte-ID (instance_type=device). Der Client muss fail-open sein (Serverausfall darf die App nie lahmlegen) und Updates erst nach SHA-256-Prüfung installieren.

Tu Folgendes: (1) Updater.TryRunUpdaterMode(args) als erste Zeile in Main; (2) EINE LicenceOptions mit ServerBaseUrl, ProductSlug, AppVersion, die Server-URL an einer Stelle; (3) beim Start aktivieren/prüfen und Premium über status.FeaturesEnabled freischalten; (4) Update per CheckForUpdateAsyncDownloadAndVerifyAsyncApplyUpdateAndRestart. Baue keinerlei Kopierschutz-Tricks ein.

Referenz (öffentlich, roh):
Windows-Anleitung: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/windows-software-guide.md
REST-Referenz: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/rest-reference.md
OpenAPI: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/openapi.yaml

Ehrlich zum Schluss: Code-Signing

Eine unsignierte .exe löst beim Kunden eine Windows-SmartScreen-Warnung aus. Fürs Testen egal; für den Verkauf signierst du deine .exe/.msi mit einem Authenticode-Zertifikat (~100–300 €/Jahr). Das ist unabhängig von der Lizenzierung — es geht nur darum, dass Windows deiner Herausgeber-Identität vertraut. Die Lizenzierung selbst ist eine Geschäftsmechanik, kein unknackbarer Kopierschutz: Die echte Durchsetzung liegt serverseitig (Update-Kanal, signierte Downloads, Aktivierungslimits). Halte den Client fail-open.

Für Entwickler: Python-Desktop-Apps verkaufen & aktualisieren (Windows · macOS · Linux)

Du baust deine App mit Python (z. B. Flask + pywebview, gepackt per PyInstaller)? Derselbe Server lizenziert und aktualisiert auch deine Python-App still im Hintergrund — genau wie bei WordPress und .NET. Ein fertiger, abhängigkeitsarmer Python-Referenzclient (se_licence.py, nur Standardbibliothek) übernimmt Aktivierung, ausfallsichere Prüfung und das stille Selbst-Update. Er ist das exakte Python-Pendant zum .NET-Client und läuft plattformübergreifend auf Windows, macOS und Linux.

Dieser Abschnitt ist für Python-Software außerhalb von WordPress. Für WordPress-Plugins siehe den obersten Abschnitt (build-freie PHP-Bibliothek), für .NET/C# den Abschnitt darüber.

Schnellstart (Python)

  1. Produkt anlegen (Licence & buy → Products): Plattform auf Windows-App (.exe / .msi), einen Slug und eine Latest Version setzen, deine mit --onefile gebaute .exe als Paket hochladen.
  2. se_licence.py und licence_config.py neben deine App legen — drei Stellen im Einstiegspunkt:
import sys, se_licence, licence_config

def main():
    # (1) ERSTE Zeile: als Update-Helfer gestartet? Datei tauschen und beenden.
    if se_licence.Updater.try_run_updater_mode( sys.argv ):
        return

    options = se_licence.LicenceOptions(
        server_url   = licence_config.SERVER_URL,    # deine Licence-&-buy-Server-Adresse
        product_slug = licence_config.PRODUCT_SLUG,  # = Produkt-Slug auf dem Server
        app_version  = licence_config.APP_VERSION,   # installierte Version, bei Release hochzählen
    )
    client  = se_licence.LicenceClient( options )
    updater = se_licence.Updater( options )
    slug    = licence_config.PRODUCT_SLUG

    # (2) Gesperrt bis zur ersten Aktivierung – danach fail-open.
    if not se_licence.is_licensed( slug ):
        key = frag_nutzer_nach_key()               # dein Fenster / deine Eingabe
        result = client.activate( key )
        if not result["success"]:
            zeige_fehler( result["message"] ); return
        se_licence.save_key( slug, key )           # Schlüssel merken – nie wieder fragen

    # (3) Prüfen (fail-open) + stilles Update, am besten im Hintergrund.
    key = se_licence.load_key( slug )
    client.validate( key )                         # frischt den Status auf; wirft nie
    info = updater.check_for_update( key )
    if info:
        paket = updater.download_and_verify( info )     # prüft SHA-256, wirft bei Manipulation
        updater.apply_update_and_restart( paket )       # ersetzt die .exe und startet neu

    starte_deine_app()

Premium-Funktionen schaltest du über das features_enabled-Feld aus client.validate(key) frei (fail-open — nur ein bestätigt erstatteter/deaktivierter Schlüssel schaltet ab). Eine neue Version ausliefern? Latest Version hochzählen, neue .exe hochladen, speichern — den Rest erledigt der Server.

Als eine .exe bauen

pyinstaller --onefile --windowed --name "MeineApp" app.py

Die Module se_licence/licence_config werden importiert und daher automatisch mitgepackt.

Wie das stille Update funktioniert

Eine laufende --onefile.exe entpackt sich in einen Temp-Ordner und sperrt ihre eigene Datei — sie kann sich nicht selbst überschreiben. Deshalb: Der Client lädt die neue .exe, prüft ihre SHA-256-Prüfsumme, startet eine Kopie als Austausch-Helfer (--se-apply-update), beendet die App — der Helfer wartet auf das Prozess-Ende, ersetzt die Datei und startet sie neu. se_licence.Updater.try_run_updater_mode(sys.argv) in der ersten main()-Zeile ist genau dieser Helfer. Eine .msi wird stattdessen still per msiexec installiert.

Hinweis: Der In-Place-Tausch passt zu einer Single-File-.exe. Ein PyInstaller-Ordner-Build (--onedir) ist ein ganzes Verzeichnis und lässt sich nicht als eine Datei tauschen — nutze --onefile oder liefere einen Installer als Paket.

Läuft auf Windows, macOS & Linux

Derselbe Client-Code läuft auf allen drei Systemen — Datenordner, Prozess-Warten und Ausführbar-Bit werden je Betriebssystem passend gewählt. Im Produkt wählst du dafür die Plattform „macOS / Linux / other“.

  • Linux: ein --onefile-Binary oder eine Einzeldatei-AppImage aktualisiert sich genau wie die Windows-.exe. (Ein .deb/.rpm ist ein System-Paket — das aktualisiert der Paketmanager.)
  • macOS: eine Einzeldatei genauso; ein echtes .app-Bündel ist ein Ordner und braucht stattdessen einen signierten, notariellen Installer (.dmg/.pkg).

Der Lizenz-Teil (Aktivieren/Prüfen, fail-open) ist auf jedem System identisch — nur die Verpackung des Updates unterscheidet sich. Details im Python-Guide auf GitHub.

Gib das deiner KI

Kopiere den Block unten in ChatGPT oder Claude (zusammen mit deiner App) — die KI baut die Integration ein.

Kontext für die KI: Ich möchte meine Python-Desktop-App mit smartEngin Licence & buy lizenzieren und automatisch aktualisieren. Es gibt einen fertigen, abhängigkeitsarmen Python-Referenzclient (se_licence.py: LicenceClient + Updater + is_licensed/save_key/load_key), der über die REST-API sels/v1 mit dem Server spricht. Ein Lizenzschlüssel ist ein zufälliges, serverseitig gespeichertes Token; die Aktivierungs-Kennung ist eine anonyme Geräte-ID (instance_type=device). Der Client muss fail-open sein (Serverausfall darf die App nie lahmlegen) und Updates erst nach SHA-256-Prüfung installieren.

Tu Folgendes: (1) se_licence.Updater.try_run_updater_mode(sys.argv) als erste Zeile in main(); (2) EINE LicenceOptions mit server_url, product_slug, app_version, Server-URL an einer Stelle eingebacken; (3) App ohne gültigen Key sperren — bei fehlendem Schlüssel nur ein Key-Eingabefenster, client.activate, dann save_key; danach fail-open; (4) Premium über features_enabled freischalten; (5) Update per check_for_updatedownload_and_verifyapply_update_and_restart. Bau mit pyinstaller --onefile --windowed. Baue keinerlei Kopierschutz-Tricks ein.

Referenz (öffentlich, roh):
Python-Anleitung: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/python-software-guide.md
REST-Referenz: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/rest-reference.md
OpenAPI: https://raw.githubusercontent.com/smartengin-de/smartengin-licence-client/main/docs/openapi.yaml

Ehrlich zum Schluss: Code-Signing

Eine unsignierte .exe löst beim Kunden eine Windows-SmartScreen-Warnung aus. Fürs Testen egal; für den Verkauf signierst du deine .exe mit einem Authenticode-Zertifikat (~100–300 €/Jahr). Das ist unabhängig von der Lizenzierung — es geht nur darum, dass Windows deiner Herausgeber-Identität vertraut. Die Lizenzierung selbst ist eine Geschäftsmechanik, kein unknackbarer Kopierschutz: Die echte Durchsetzung liegt serverseitig (Update-Kanal, signierte Downloads, Aktivierungslimits). Halte den Client fail-open.

Datenschutz-Übersicht

Die Datenverarbeitung kann mit deiner Einwilligung oder auf Basis eines berechtigten Interesses erfolgen, dem du in den Privatsphäre-Einstellungen widersprechen kannst. Du hast das Recht, nicht einzuwilligen und deine Einwilligung zu einem späteren Zeitpunkt zu ändern oder zu widerrufen. Der Widerruf wird sofort wirksam, hat jedoch keine Auswirkungen auf bereits verarbeitete Daten. Weitere Informationen zur Verwendung deiner Daten findest du in unserer Datenschutzerklärung.