Shop in Spiel integrieren

Nachdem Sie Waren (virtuelle Gegenstände, virtuelle Währung, Bundles, Schlüssel) im Kundenportal erstellt und konfiguriert haben, erweitern Sie Ihr Spiel um einen Ingame-Shop:

  1. Implementieren Sie die Anzeige des Artikelkatalogs.
  2. Implementieren Sie die Logik für den Verkauf von Artikeln.

Artikelkatalog anzeigen

Hinweis
Um die Xsolla-API aufzurufen, können Sie die vorgefertigten SDK-Methoden für Spiel-Engines und Plattformen verwenden:

Implementieren Sie die Anzeige des Artikelkatalogs über die In-Game Store-API-Aufrufe:

FunktionAPI
Zeigt eine vollständige Liste der im Shop erhältlichen virtuellen Gegenstände anGet virtual items list
Zeigt eine Liste der clientseitig erhältlichen Gruppen virtueller Gegenstände anGet item groups list
Ruft eine Liste der clientseitig im Shop erhältlichen virtuellen Währungen abGet virtual currency list
Zeigt eine vollständige Liste der clientseitig im Shop erhältlichen virtuellen Währungspakete anGet virtual currency package list
Zeigt eine vollständige Liste der im Shop erhältlichen Bundles anGet list of bundles
Hinweis
Die Antwort der Katalog-abrufen-Methoden enthält jene Artikel, die zum Zeitpunkt der Anfrage im Shop angezeigt werden. Wenn Sie Informationen über Artikel erhalten möchten, deren Anzeigezeitraum noch nicht begonnen hat oder bereits abgelaufen ist, weisen Sie bei der Katalogabfrage dem Parameter show_inactive_time_limited_items den Wert 1 zu.

Artikel verkaufen

Artikel lassen sich auf folgende Arten verkaufen:

  1. Schnellkauf eines Artikels. Dabei können Sie eine SKU in beliebiger Menge verkaufen (z. B. 100 identische Tränke oder eine eigens festgelegte Menge virtueller Währung).
  2. Warenkorb kaufen. Dabei kann der Spieler einen Warenkorb zusammenstellen, anschließend Artikel hinzufügen oder entfernen oder Mengen ändern.

Schnellkauf

  1. Rufen Sie den API-Aufruf Create order with specified item auf. Daraufhin wird ein Token für das Öffnen des Zahlungsportals in der Antwort übermittelt.
  2. Öffnen Sie das Zahlungsportal mit dem erhaltenen Zahlungstoken.
Hinweis
Die Rabattinformationen (personalisiert oder im Zusammenhang mit dem Kauf) kann der Benutzer nur im Zahlungsportal einsehen. Die Verwendung von Promocodes ist nicht vorgesehen.
Hinweis
Um die Xsolla-API aufzurufen, können Sie die vorgefertigten SDK-Methoden für Spiel-Engines und Plattformen verwenden:

Warenkorbkauf

Implementieren Sie die folgende Logiken:
  1. Warenkorb zusammenstellen und Token abrufen:
    • Im Client – Wenn Sie den Warenkorb selbst in Ihre Anwendung implementieren möchten.
    • Auf dem Server – Wenn Sie die Lösung von Xsolla (In-Game Store-API-Aufrufe) verwenden möchten, um den Warenkorb zu verwalten.
  2. Zahlungsportal öffnen.

Warenkorb im Client zusammenstellen und kaufen

Implementieren Sie die Logik für das Hinzufügen und Entfernen von Artikeln selbst. Bedenken Sie außerdem, dass Sie vor dem für die Zusammenstellung eines Warenkorbs nötigen API-Aufruf keine Infos darüber haben, welche Werbeaktionen auf den Kauf angewendet werden. Das heißt die Gesamtkosten und die hinzugefügten Bonusartikel sind nicht bekannt.

  1. Nachdem der Spieler einen Warenkorb zusammengestellt hat, rufen Sie den API-Aufruf Fill cart with items auf. Die aktuellen Informationen über die ausgewählten Artikel (Preise mit und ohne Rabatt, Bonusartikel) werden in der Antwort übermittelt.
  2. Rufen Sie den API-Aufruf Create order with all items from current cart auf. Die Bestell-ID und der Zahlungstoken werden in der Antwort übermittelt. Die angelegte Bestellung erhält den Status Neu.
  3. Öffnen Sie das Zahlungsportal.
Hinweis
Um die Xsolla-API aufzurufen, können Sie die vorgefertigten SDK-Methoden für Spiel-Engines und Plattformen verwenden:

Warenkorb auf dem Server zusammenstellen und kaufen

Bei dieser Variante kann die Zusammenstellung des Warenkorbs länger dauern, da jede Änderung des Warenkorbs einen API-Aufruf erfordert.

Führen Sie die folgenden Schritte aus:

  1. Warenkorb ändern:

Hinweis
Wenn Sie den aktuellen Status des Warenkorbs erfragen möchten, rufen Sie den API-Aufruf Get current user’s cart auf.
  1. Rufen Sie den API-Aufruf Create order with all items from the current cart auf. Die Bestell-ID und der Zahlungstoken werden in der Antwort übermittelt. Die angelegte Bestellung erhält den Status Neu.
  2. Öffnen Sie das Zahlungsportal.

Zahlungsportal öffnen

Öffnen Sie zum Bezahlen von Artikeln das Zahlungsportal. Ein Token für das Öffnen des Zahlungsportals wird in der API-Antwort Create order with all items from current cart übermittelt.

Implementieren Sie das Öffnen des Zahlungsportals. Es stehen zwei Möglichkeiten zur Auswahl:

Zahlungsvorgang testen

Sie können den Zahlungsvorgang in der Testumgebung testen. Dabei können Sie eine Testbankkarte und ein beliebiges Konto verwenden.

Hinweis

Nachdem die erste echte Zahlung erfolgt ist, tritt eine strenge Sandbox-Zahlungsrichtlinie in Kraft. Eine Zahlung in der Testumgebung bzw. im Sandbox-Modus ist nur für Benutzer verfügbar, die unter Kundenportal > Firmeneinstellungen > Nutzer angegeben sind.

Der Kauf von virtueller Währung und virtuellen Gegenständen gegen echte Währung ist nur nach Unterzeichnung der Xsolla-Lizenzvereinbarung möglich. Navigieren Sie dazu im Kundenportal zu Vereinbarungen und Steuern > Vereinbarungen, füllen Sie das Formular aus, und warten Sie auf die Bestätigung. Die Prüfung der Vereinbarung kann bis zu drei Geschäftstage dauern.

Um die Testumgebung zu aktivieren bzw. zu deaktivieren, müssen Sie den Wert des Parameters sandbox in der Schnellkauf- und Warenkorb kaufen-Anfrage ändern. Die Testumgebung ist standardmäßig deaktiviert.

Benutzerbestellstatus abrufen

Sie können Benutzerbestellstatus auf eine der folgenden Weisen abrufen:

  1. serverseitig über Webhooks
  2. clientseitig über die WebSocket API oder die IGS API

Benutzerbestellstatus serverseitig über Webhooks abrufen

Nachdem Sie Webhooks auf Ihrem Server konfiguriert haben, können Sie damit die Details und den Status der Bestellung abrufen.

Benutzerbestellstatus clientseitig über die WebSocket API oder die IGS API abrufen

Wenn Sie keinen Server haben oder die Logik für die Kaufabwicklung clientseitig implementieren möchten, stehen folgende Möglichkeiten offen:
  1. WebSocket API
  2. Short-polling

Bestellstatus mithilfe der WebSocket API clientseitig abrufen

Die Lösung verwendet Websockets, um den Bestellstatus abzurufen, ohne detaillierte Informationen über die Bestellung zu erhalten. Diese Methode ist vorzuziehen, da nur eine Verbindung zwischen dem Client (z. B. Ihrer Website oder App) und dem Xsolla-Server hergestellt wird und somit die Auslastung des Clients oder des Servers nicht weiter steigt.

Hinweis
Wenn Sie keinen eigenen Server haben, der Webhooks verarbeiten kann, oder wenn Sie eine clientseitige Logik für die Kaufabwicklung verwenden, können Sie die WebSocket API und das Centrifuge-SDK nutzen.

Gehen Sie wie folgt vor:

  1. Damit der Xsolla-Websocket-Server und Ihr Client die Bestellstatusmeldungen erkennen können, müssen Sie eine Verbindung herstellen:

Copy
Full screen
Small screen
const client = new Centrifuge(
connectionURL,
{
data: {
  user_external_id: user_external_id,
  auth: auth,
  project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
  1. Abonnieren Sie die Ereignisse mithilfe der Funktion client.on, um neue Meldungen über den Bestellstatus zu erhalten:
Copy
Full screen
Small screen
client.on('publication', (ctx) => {
   //handle the status
});
  1. Triggern Sie die eigentliche Verbindungsherstellung:
Copy
Full screen
Small screen
client.connect()
  1. Nutzen Sie die history method der API, um den Bestellstatus-Änderungsverlauf zu erhalten:
Copy
Full screen
Small screen
client.on('subscribed', function (ctx) {
   client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
   /handle the status
});

   }, function (err) {
       //handle the status
   });
});

Nachrichtenrumpf (Beispiel):

Copy
Full screen
Small screen
{
order_id: 59614241,
status: 'new'
}

Folgende Bestellstatus sind möglich:

  • New – Bestellung angelegt, aber noch nicht bezahlt
  • Paid – Bestellung bezahlt
  • Done – Bestellung ausgeliefert (alle Belege gesendet, Auslieferung durch Xsolla, externe Plattformen usw. ist erfolgt)
  • Canceled – Bestellung ist storniert und die Zahlung wurde dem Nutzer erstattet

Der Zeitbedarf für eine Antwort über den Websocket beträgt fünf Minuten. Danach oder bei Problemen mit dem Websocket wird empfohlen, ein Short-polling zu verwenden.

Short-polling

Nutzen Sie den API-Aufruf Bestellung abrufen, um nach einer Bestellstatusänderung detaillierte Informationen über die Artikel in der Bestellung zu erhalten.

Hinweis
Hierzu wird eine zyklische Bestellstatusabfrage genutzt (Polling) – eine einfache HTTP-Anfrage, die den Bestellstatus und die ‑informationen abfragt. Die empfohlene Verzögerung zwischen den Anfragen beträgt 3 Sekunden.
War dieser Artikel hilfreich?
Vielen Dank!
Gibt es etwas, das wir verbessern können? Nachricht
Das tut uns leid
Bitte erläutern Sie, weshalb dieser Artikel nicht hilfreich ist. Nachricht
Vielen Dank für Ihr Feedback!
Wir werden Ihr Feedback aufgreifen und dazu nutzen, Ihr Erlebnis verbessern.
Letztmalig aktualisiert: 3. Oktober 2024

Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.

Problem melden
Wir überprüfen unsere Inhalte ständig. Ihr Feedback hilft uns, sie zu verbessern.
Geben Sie eine E-Mail-Adresse an, damit wir Sie erreichen können
Vielen Dank für Ihr Feedback!