Überblick
Digital Distribution Hub ist eine Lösung, die Spieleentwickler mit Vertriebspartnern vernetzt, die ihre eigenen Plattformen oder Ökosysteme für die Distribution von Spielen, virtuellen Gegenständen und virtueller Währung nutzen.
Vertriebspartner sind digitale Plattformen oder Ökosysteme, die Spiele und Ingame-Items vertreiben und eigene Shops haben sowie eigene Rechnungen ausstellen. Beispiele für Xsolla-Vertriebspartner:
- Super-Apps, die mehrere Dienste bündeln
- Banking-Apps
- Telekommunikations- und Internetdienstanbieter
- Automaten
- Anbieter von Cashback- und Prämienprogrammen
- digitale Marktplätze
Vorteile für Spieleentwickler:
- Vergrößert die Zielgruppe der Spiele durch die direkte Anbindung an schnell wachsende Vertriebspartner.
- Steigende Umsätze durch die Aufnahme des Spiels in neue Vertriebskanäle mit einzigartigem Nutzerkreis.
- Bessere organische Auffindbarkeit auf Plattformen Dritter durch Werbeanzeigen und Banner.
Vorteile für Vertriebspartner:
- Gesteigerte Nutzertreue durch Zugang zu noch mehr Spielinhalten. Nutzer können Spielschlüssel, virtuelle Gegenstände, virtuelle Währung und Bundles direkt über die App oder den Dienst erwerben.
- Bindung bestehender und Gewinnung neuer Nutzer durch die wachsende Beliebtheit der Gaming-Branche.
- Steigende Umsätze durch die Provision aus dem Verkauf von Spielschlüsseln, virtuellen Gegenständen und virtueller Währung der größten Akteure auf dem Gaming-Markt.
So funktioniert's
Spielschlüsselkauf: Ablauf für Benutzer
Kauf von virtuellen Gegenständen und virtueller Währung: Ablauf für Benutzer
Interaktionsablauf
- Der Spieleentwickler erstellt ein Projekt im Kundenportal, und lädt die Spielschlüssel, virtuellen Gegenstände, virtuelle Währung und Bundles hoch.
- Ein Vertriebspartner fragt Benutzerdaten ab:
- die E-Mail-Adresse des Benutzers, an die die Schlüssel gesendet werden sollen;
- die Ingame-ID des Benutzers, dem die Gegenstände gewährt werden sollen.
- Der Benutzer gibt in der Benutzeroberfläche des Vertriebspartners die E-Mail-Adresse ein, um die Schlüssel zu erhalten, bzw. die Benutzer-ID, um die Artikel zu erhalten.
- Der Vertriebspartner ruft die Methode Benutzertoken erstellen auf, und übermittelt die E-Mail-Adresse bzw. die Benutzer-ID als Parameter.
- Sofern der Spieleentwickler Webhooks aktiviert hat, prüft Xsolla, ob der Benutzer im Spiel existiert. Für den Verkauf von Spielschlüsseln müssen Webhooks nicht zwingend eingebunden sein. Für den Verkauf von virtuellen Gegenständen und virtueller Währung hingegen ist die Einbindung erforderlich.
- Xsolla erstellt einen Token mit Benutzerdaten und sendet diesen an einen Vertriebspartner.
- Der Vertriebspartner fordert einen Spiele- oder einen Ingame-Items-Katalog an.
- Xsolla gibt den angeforderten Katalog als Antwort zurück.
- Der Vertriebspartner erhält den Katalog und zeigt ihn dem Benutzer an.
- Der Benutzer kauft etwas. Der Vertriebspartner legt einen Warenkorb an.
- Der Vertriebspartner sendet den Warenkorb des Benutzers, um eine Bestellung anzulegen.
- Xsolla gibt die Bestell-ID und die Warenkorbsumme inklusive Rabatten und Steuern zurück.
- Der Vertriebspartner zeigt dem Benutzer die Gesamtsumme des Warenkorbs an.
- Bezahlt der Benutzer, bucht der Vertriebspartner das Geld vom Zahlungsmittel des Benutzers ab und leitet ihn zur Zahlungsstatusseite weiter.
- Der Vertriebspartner benachrichtigt Xsolla, dass die Bestellung bezahlt wurde, und sendet die zugehörigen Zahlungsdaten.
- Xsolla benachrichtigt den Spieleentwickler über den Kauf.
- Der Benutzer, der das Spiel gekauft hat, erhält eine E-Mail mit den Kaufdetails und kann die Spielschlüssel aktivieren. Wenn der Benutzer virtuelle Gegenstände oder virtuelle Währung gekauft hat, werden diese seinem Inventar hinzugefügt.
Integration aufseiten des Spieleentwicklers
So verknüpfen Sie den Digital Distribution Hub
So bewerben Sie Ihr Spiel auf Vertriebskanälen:
- Verknüpfen Sie Online-Shop im Kundenportal, und laden Sie Folgendes herunter:
- Spielschlüssel oder Spielschlüssel-Bundles, sofern Sie Spielschlüssel verkaufen;
- virtuelle Gegenstände, virtuelle Währung oder Bundles, sofern Sie Ingame-Items verkaufen.
- Richten Sie Webhooks ein.
- Wenden Sie sich an Ihren Account Manager oder senden Sie eine E-Mail an am@xsolla.com, um Digital Distribution Hub für Ihr Projekt zu aktivieren.
So richten Sie Webhooks ein
Webhooks müssen eingerichtet sein:
- um den Benutzer zu überprüfen und den Katalog anhand der Benutzer-ID im Spiel zu personalisieren;
- um den Benutzer zu überprüfen und die gekauften virtuellen Gegenstände und virtuellen Währungen seinem Inventar hinzuzufügen;
- um die Transaktions-ID aufseiten von Xsolla mit der Transaktions-ID im System des Spieleentwicklers zu verknüpfen;
- um Kaufbenachrichtigungen zu erhalten.
So aktivieren Sie Webhooks:
- Öffnen Sie Ihr Projekt im Kundenportal.
- Klicken Sie in der Seitenleiste auf Projekteinstellungen, und wechseln Sie zur Registerkarte Webhooks.
- Stellen Sie den Umschalter Webhooks auf Ein.
- Geben Sie die Webhook-URL an.
- Daraufhin wird standardmäßig ein geheimer Schlüssel zum Signieren der Projekt-Webhooks generiert. Wenn Sie einen neuen geheimen Schlüssel generieren möchten, klicken Sie auf das Aktualisieren-Symbol.
- Klicken Sie auf Einstellungen speichern.
Benutzervalidierung
Xsolla sendet einen Webhook für die Benutzervalidierung, um zu prüfen, ob ein Benutzer im Spiel existiert. Die Benutzervalidierung ermöglicht es Ihnen:
- dem Benutzer einen personalisierten Katalog anzuzeigen, sofern Sie Benutzerattribute in der Antwort übermitteln;
- gekaufte Gegenstände dem Inventar des Benutzers hinzuzufügen.
Um den Empfang eines Webhooks zu bestätigen, muss Ihr Server wie folgt antworten:
- HTTP-Statuscode 204 ohne Nachrichtenrumpf, wenn der Benutzer im Spiel existiert;
- HTTP-Statuscode 400 samt Problembeschreibung, sofern der angegebene Benutzer nicht gefunden oder eine ungültige Signatur übermittelt wurde.
Die vollständige Liste und der Mechanismus der Webhooks, einschließlich Beispielen, sind in der API-Referenz ausführlich beschrieben.
In der Antwort können Sie weitere Transaktionsparameter im custom_parameters
-Objekt übermitteln.
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"user_attributes": {
"type": "object",
"required": false,
"minProperties": 1,
"maxProperties": 100,
"patternProperties": {
"^[\\w-_.]{1,255}$": {
"oneOf": [
{
"type": "integer"
},
{
"type": "string",
"minLength": 1,
"maxLength": 255
},
{
"type": "array",
"items": {
"type": "string",
"maxLength": 255
},
"minItems": 1,
"maxItems": 1000
}
]
}
},
"additionalProperties": false
}
}
}
Antwortbeispiel:
- http
{
"user_attributes": {
"age": 18,
"level": 1,
"game": "WoW",
"is_baned": false,
"registration_date": "2022-01-01"
}
}
Verknüpfung der Transaktions-ID
Wenn Sie eine externe ID (Transaktions-ID in Ihrem System) verwenden und diese mit einer Transaktions-ID aufseiten von Xsolla verknüpfen möchten, implementieren Sie die folgende Webhook-Verarbeitung:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"notification_type": {
"type": "string"
},
"order_id": {
"type": "integer"
},
"project_id": {
"type": "integer"
},
"user": {
"type": "object",
"properties": {
"external_id": {
"type": "string"
},
"email": {
"type": ["string", "null"]
}
}
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"item_id": {
"type": "integer"
},
"sku": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"type": {
"type": "string"
}
}
}
}
}
}
Anfragebeispiel:
- http
{
"notification_type": "create_external_transaction",
"order_id": 1,
"project_id": 51336,
"user": {
"external_id": "user_id",
"email": null
},
"items": [
{
"item_id": 101,
"sku": "mithril_dagger",
"quantity": 2,
"type": "virtual_good"
}
]
}
In der Antwort können Sie weitere Transaktionsparameter im custom_parameters
-Objekt übermitteln.
Erwartete Antwort:
{
"id": "validation_transaction_info_response.json",
"$schema": "http://json-schema.org/draft-07/schema#",
"description": "DDH Project Transaction Info Response",
"type": "object",
"additionalProperties": true,
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"custom_parameters": {
"type": "object",
"additionalProperties": true,
"minProperties": 1,
"maxProperties": 200
}
}
}
Antwortbeispiel:
- http
{
"id":"123"
}
Liste der Webhook-Parameter für die Verknüpfung von Transaktions-IDs:
Parameter | Typ | Beschreibung |
---|---|---|
notification_type | string | Art der Benachrichtigung. |
order_id | integer | Bestell-ID. |
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
user.external_id | string | Benutzer-ID aufseiten des Spieleentwicklers. |
items | string | Liste der vom Benutzer gekauften Artikel. |
items.sku | array | Eindeutige ID des Gegenstands. Gegenstände vom Typ game_key nutzen den Wert im sku_drm -Format. |
items.type | array | Gegenstandstyp. Kann folgende Werte aufweisen: virtual_good , virtual_currency , game_key , physical_good . |
items.quantity | integer | Menge der Gegenstände. |
Kaufbestätigung
Nachdem der Benutzer bezahlt hat, erhalten Sie:
- den Zahlungs-Webhook mit den Zahlungsdaten;
- den Warenkorbinhalt-Webhook mit den Informationen über die Artikel, die dem Inventar hinzugefügt werden sollen.
Integration aufseiten des Vertriebspartners
Wenn Sie an einer Integration von Digital Distribution Hub interessiert sind, senden Sie dem Integrationsmanager eine E-Mail (psbusiness@xsolla.com), und bitten Sie um die für die Nutzung der Digital Distribution Hub API erforderlichen Parameter:
Um Spiele oder Ingame-Items in Ihrer App oder Ihrem Dienst zu vertreiben, implementieren Sie die folgende Spielkauflogik:
- Zeigen Sie dem Benutzer eine Eingabemaske an, in der er seine E-Mail-Adresse bzw. seine Ingame-Benutzer-ID eingeben kann.
Die E-Mail-Adresse ist beim Kauf von Spielschlüsseln und Spielschlüsselpaketen abzufragen. In diesem Fall muss der Benutzer außerdem die Möglichkeit haben, in der Benutzeroberfläche DRMs auszuwählen.
Die Benutzer-ID ist beim Kauf von virtuellen Gegenständen, virtueller Währung und Bundles, die Gegenstände und Währung enthalten, abzufragen. In diesem Fall muss der Benutzer darauf hingewiesen werden, die bei der Registrierung erhaltene ID einzugeben. Zum Beispiel:

- Übermitteln Sie die erhaltene E-Mail-Adresse bzw. Benutzer-ID, um zu prüfen, ob der Benutzer im Spiel existiert. Rufen Sie dazu mithilfe der Methode Benutzertoken erstellen einen Autorisierungstoken ab, und übermitteln Sie die Parameter in der Anfrage:
Parameter | Typ | Beschreibung |
---|---|---|
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
user.email | string | E-Mail-Adresse des Benutzers. |
user.id | String oder null | Individuelle Benutzerkennung im Spiel. |
- In der Antwort wird ein Autorisierungstoken mit Benutzerdaten zurückgegeben.
- Import:
- Spielekatalog; Methode Spieleliste abrufen nutzen
- Katalog mit virtuellen Gegenständen; Methode Liste der virtuellen Gegenstände abrufen nutzen
- Katalog mit virtueller Währung; Methode Liste der virtuellen Währungen abrufen nutzen
- Bundles mit Spielen oder Katalog mit Ingame-Items; Methode Liste der Bundles abrufen nutzen
- Übermitteln Sie in der Anfrage den in Schritt 2 erhaltenen Token und den folgenden Parameter:
Parameter | Typ | Beschreibung |
---|---|---|
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
- Zeigen Sie den Spiele- und Ingame-Items-Katalog auf Ihrer Shopstartseite an. Implementieren Sie auf der Benutzeroberfläche folgende Auswahlmöglichkeiten:
- Anzahl der Spielschlüssel;
- Anzahl der Ingame-Items;
- Anzahl der virtuellen Währung bzw. virtuellen Währungspakete für einen festen Währungsbetrag;
- Anzahl der Bundles.
- Wenn Sie einen Warenkorb verwenden, kann die Artikelmenge darin festgelegt werden. Wenn Sie keinen Warenkorb verwenden, kann die Auswahl der Artikelmenge im Katalog implementiert werden.
- Beispiel für die Auswahl der Artikelmenge im Warenkorb:

- Beispiel für die Auswahl der Artikelmenge im Katalog:

- Wenn Sie keinen Einkaufswagen verwenden, wechseln Sie zu Schritt 6, und verwenden Sie die Methode Bestellung mit dem angegebenen Artikel erstellen.
- Nutzen Sie die Methode Artikel in den Warenkorb legen, um den Warenkorb zusammenzustellen.
- Der Benutzer kann in einer Bestellung Artikel hinzufügen, entfernen oder deren Menge ändern. So lässt sich der Warenkorb aktualisieren:
- Über die Methode Artikel in den Warenkorb legen, jedes Mal, wenn der Benutzer den Inhalt des Warenkorbs ändert.
- Methoden zum Aktualisieren des Warenkorbs und zum Löschen eines Artikels:
- Nutzen Sie in diesem Fall nach dem Aktualisieren des Warenkorbs die Methode Warenkorb des aktuellen Benutzers abrufen.
- Übermitteln Sie die folgenden Parameter in den Anfragen für das Zusammenstellen und Aktualisieren des Warenkorbs:
Parameter | Typ | Beschreibung |
---|---|---|
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
items.sku | string | Eindeutige ID des Gegenstands. Gegenstände vom Typ game_key nutzen den Wert im sku_drm -Format. |
items.quantity | integer | Menge der Gegenstände. |
- Nach dem Aufruf der Methode Artikel in den Warenkorb legen oder Warenkorb des aktuellen Benutzers abrufen liefert die Antwort aktualisierte Informationen über die ausgewählten Produkte: Preise mit und ohne Rabatt, Bonusprodukte.
- Verwenden Sie die Methode Bestellung mit allen Artikeln aus dem aktuellen Warenkorb erstellen, um eine Bestellung anzulegen und die im Warenkorb befindlichen Artikel zu bezahlen. Übermitteln Sie die folgenden Parameter in der Anfrage:
Parameter | Typ | Beschreibung |
---|---|---|
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
| number | Vertriebspartner-ID aufseiten von Xsolla. |
| string | Währung der Bestellung. Bei virtuellen Währungen wird die SKU und bei echten Währungen der aus drei Buchstaben bestehende Code gemäß ISO 4217 genutzt. |
- In der Antwort werden die Bestell-ID und der Warenkorbpreis inklusive Steuern zurückgegeben.
- Zeigen Sie dem Benutzer den Gesamtpreis des Warenkorbs an.
- Buchen Sie das Geld vom Zahlungsmittel des Benutzers auf Ihrer Plattform ab. Leiten Sie den Benutzer zur Zahlungsstatusseite weiter.
- Senden Sie eine Zahlungsbenachrichtigung, und übermitteln Sie die folgenden Parameter in der Anfrage:
Parameter | Typ | Beschreibung |
---|---|---|
project_id | integer | ID des Projekts, in das Spielschlüssel oder Bundles mit Spielschlüsseln, Ingame-Items oder Bundles mit Ingame-Items geladen werden. |
payment.amount | integer | Zahlungsbetrag. |
order_id | integer | Bestell-ID. |
ps_transaction_id | string | Transaktions-ID aufseiten des Vertriebspartners. |
War dieser Artikel hilfreich?
Diese Seite bewerten
Jetzt nicht
Vielen Dank für Ihr Feedback!
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.