API für eigene Lizenzdienste
Launch unterstützt Licentivo und eigene Lizenzdienste. Wählen Sie unter Systemeinstellungen → Lizenzsystem einen Anbieter für den gesamten Shop.
Produkte mit eigener Lizenzierung verwenden den Lizenzdienst und das SDK des Händlers. Launch übernimmt Verkauf, Zahlungsbestätigung, Kaufstatusabgleich und Auslieferungsabfragen.
- Konfigurieren Sie Verbindungen, Signaturschlüssel sowie Produkt- und Tarifzuordnungen getrennt für sandbox und live. Prüfen Sie die Verbindung vor der Tarifveröffentlichung.
- Verbindungen mit bestehenden Bestellungen können nicht direkt ersetzt werden. Migrieren Sie die Bestellungen vor einem Anbieterwechsel und veröffentlichen Sie die Tarife erneut.
- Prüfen Sie Käufe, Verlängerungen, Upgrades, Erstattungen und Fehlerbehebung in der Testumgebung, bevor Sie die Produktivkonfiguration veröffentlichen.
Schnittstellen des Händler-Lizenzdienstes
Diese vier Schnittstellen werden vom Lizenzdienst des Händlers implementiert und vom Launch-Server aufgerufen. Senden Sie diese Anfragen nicht an www.licentivo.com.
| API | Zweck |
|---|---|
GET /launch/v1/capabilities | Protokoll, Verbindung, Umgebung sowie unterstützte Kauf- und Auslieferungsarten angeben. |
POST /launch/v1/events | Den vollständigen Kauf-Snapshot annehmen und nach dauerhafter Speicherung des Ereignisses eine Quittung zurückgeben. |
GET /launch/v1/events/{event_id} | Die ursprüngliche Ereignisquittung abfragen. Nur applied bestätigt die abgeschlossene Lizenzänderung. |
GET /launch/v1/entitlements/{entitlement_ref}/delivery | Die bestehende Auslieferung der aktuellen Kaufversion lesen, ohne eine weitere Lizenz auszustellen. |
Snapshots enthalten Kaufversion, aktuellen Zustand und absolute Gültigkeitsdaten; valid_until=null steht für einen dauerhaften Kauf. Nach einer Erstattung kann ein Basiskauf bestehen bleiben. Berechnen Sie Rechte daher aus dem vollständigen Snapshot neu.
{
"schema": "launch-external-licensing-v1",
"event_id": "7bf84b91-2749-4b01-a6a7-bd527c488ee8",
"connection_ref": "merchant-01-sandbox",
"environment": "sandbox",
"type": "entitlement.snapshot",
"change_reason": "purchase",
"account_ref": "customer_opaque_001",
"entitlement_ref": "purchase_opaque_001",
"launch_product_id": "c6dd463e-50f7-4b76-8239-0a8ec6fc304b",
"launch_plan_version_id": "5459a073-9362-4b46-949d-9b0c5d84421a",
"product_ref": "desktop-editor",
"plan_ref": "professional-yearly-v1",
"version": 1,
"desired_state": "active",
"valid_from": "2026-10-26T00:00:00Z",
"valid_until": "2027-10-26T00:00:00Z"
}Signaturen und Wiederholungen
Verwenden Sie je Verbindung einen eigenen HMAC-SHA256-Schlüssel mit mindestens 32 zufälligen Bytes. Anfragen enthalten Schlüssel-ID, Unix-Zeitstempel in Sekunden, zufällige Nonce und Signatur. Prüfen Sie Signatur, ein Zeitfenster von 300 Sekunden und den Nonce-Wiederholungsschutz.
v1
<key_id>
<timestamp>
<nonce>
<UPPERCASE HTTP METHOD>
<encoded full path and raw query>
<lowercase SHA-256 of the exact request body>Fügen Sie der Signatureingabe keinen abschließenden Zeilenumbruch hinzu. X-Launch-Signature besteht aus v1= und der base64url-Signatur ohne Padding. GET-Anfragen haben keinen Inhalt.
Wiederholungen behalten Ereignis-ID und Originalinhalt bei und verwenden jeweils eine neue Nonce. Fragen Sie nach einem Timeout das ursprüngliche Ereignis ab. Alte Versionen dürfen neue nicht überschreiben; 202 bestätigt keine abgeschlossene Lizenzierung.
Launch-Verwaltungs- und Kundenschnittstellen
Diese Schnittstellen gehören zur eigenen Launch-Website des Händlers. Administratoren verwenden eine Websitzung und X-CSRF-Token. Kunden dürfen nur ihre eigenen aktuell gültigen Käufe lesen.
PUT /api/v1/admin/licensing/provider | {"provider":"custom_http"} |
GET/POST /api/v1/admin/licensing/connections | GET/POST |
PUT /api/v1/admin/licensing/connections/{id} | POST /api/v1/admin/licensing/connections/{id}/check |
PUT /api/v1/admin/products/{id}/licensing | environment + connection_id + mappings |
GET /api/v1/me/products/{id}/delivery?environment=sandbox | pending / ready / unavailable |
Die Auslieferung kann einen Lizenzschlüssel, einen HTTPS-Aktivierungslink oder Klartextanweisungen enthalten. Ein erfolgreicher Abgleich ersetzt keine Laufzeitprüfung im Client.
Vollständiges Protokoll und Beispiele · OpenAPI herunterladen · Python-Empfängerbeispiel