
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.
| Problem | Lö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 – – – –
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
- 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
- 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)
- Lege dein Produkt auf deinem Server an (Licence & buy → Products): setze einen slug und eine latest version.
- Bündle die Bibliothek in deinem Plugin unter
lib/smartengin-licence-client/. - 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-APIsels/v1spricht. 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 EINESelf_Client-Instanz mitserver_url,slug,plugin_file,version, und halte die Server-URL an einer einzigen Konstante; (3) zeigerender_panel()in meinem Admin; (4) schalte Premium-Funktionen mit eineris_licensed()-Hilfsfunktion frei, dieget_state()liest undactive/expiredals 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) undinstance_type(domain). - Fehler: JSON
{ "success": false, "error": "<slug>", "message": "…" }mit passendem HTTP-Status.
| Endpunkt | Methode | Zweck | Wichtige Parameter |
|---|---|---|---|
/activate | POST | Website mit einem Schlüssel registrieren (idempotent). Liefert status, valid_until, activations_left. | key, product, instance |
/deactivate | POST | Aktivierungs-Slot einer Website freigeben (idempotent). | key, instance |
/validate | POST | Status eines Schlüssels neu prüfen. Blockiert nie (unbekannter Schlüssel → valid:false). | key, product, instance |
/update | GET | WordPress-Update-Prüfung. Liefert eine signierte, kurzlebige Paket-URL nur für eine gültige Lizenz. | key, product, version, instance |
/download | GET | Liefert 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#)
- Produkt anlegen (Licence & buy → Products): Plattform auf Windows-App (.exe / .msi), einen Slug und eine Latest Version setzen, deine .exe/.msi als Paket hochladen.
- 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-APIsels/v1mit 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 inMain; (2) EINELicenceOptionsmitServerBaseUrl,ProductSlug,AppVersion, die Server-URL an einer Stelle; (3) beim Start aktivieren/prüfen und Premium überstatus.FeaturesEnabledfreischalten; (4) Update perCheckForUpdateAsync→DownloadAndVerifyAsync→ApplyUpdateAndRestart. 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)
- Produkt anlegen (Licence & buy → Products): Plattform auf
Windows-App (.exe / .msi), einen Slug und eine Latest Version
setzen, deine mit
--onefilegebaute .exe als Paket hochladen. se_licence.pyundlicence_config.pyneben 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/.rpmist 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-APIsels/v1mit 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 inmain(); (2) EINELicenceOptionsmitserver_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, dannsave_key; danach fail-open; (4) Premium überfeatures_enabledfreischalten; (5) Update percheck_for_update→download_and_verify→apply_update_and_restart. Bau mitpyinstaller --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.
