Inventar. Zeitlich begrenzte Artikel

So funktioniert's

Ein zeitlich begrenzter Artikel ist ein Premium-Bonus und Einmalkauf. Der Benutzer muss ihn also nach Ablauf erneut erwerben.

Hauptmerkmale:

  • Der zeitlich begrenze Artikel kann beliebig oft erworben werden.
  • Wenn der Benutzer den Artikel erneut kauft, bleibt die Anzahl der Artikel im Inventar unverändert, jedoch verlängert sich die Zeit bis zum Ablauf des Artikels.
  • Das Ablaufdatum des Artikels lässt sich im Kundenportal konfigurieren.

Einschränkungen:

  • Sie können den zeitlich begrenzten Artikel nur aufseiten des Spielservers verwalten.

Hinweis
Wie Sie die Anzeigedauer eines Artikels im Shop begrenzen, erfahren Sie in der Anleitung So begrenzen Sie die Anzeigedauer für Artikel im Shop.

Für wen ist es

  • Partner, die den In-Game Store integriert haben und einen neuen Artikeltyp (zeitlich begrenzter Artikel) einrichten möchten.
  • Partner, die Season Pass, Battle Pass oder sonstige Artikeltypen verkaufen möchten, mit denen Benutzer Vorteile oder weitere Inhalte für eine begrenzte Dauer erhalten.

Wie komme ich dazu

Voraussetzungen

Wenn Sie Xsolla-Online-Shop noch nicht integriert haben, gehen Sie wie folgt vor:

  1. Registrieren Sie sich im Xsolla-Kundenportal.
  2. Navigieren Sie zu Projekte, und klicken Sie auf die Schaltfläche Projekt erstellen.
  3. Geben Sie einen Projektnamen an, und klicken Sie auf Erstellen.
  4. Verknüpfen Sie den Online-Shop mit Ihrem Projekt.
  5. Verknüpfen Sie das Modul Virtuelle Gegenstände.

Integrationsablauf

  1. Erstellen Sie eine Gegenstandsgruppe.
  2. Erstellen Sie Gegenstände:
    1. Wählen Sie beim Erstellen eines neuen Gegenstands unter Gegenstandseigenschaften die Option zeitlich begrenzte Artikel.
    2. Geben Sie das Ablaufdatum an.

  1. Implementieren Sie den Abruf zeitlich begrenzter Artikel aus dem Katalog.
  2. Implementieren Sie die Methoden für den Kauf zeitlich begrenzter Artikel.

Zeitlich begrenzte Artikel im Katalog abrufen

Implementieren Sie die API-Methode Liste virtueller Gegenstände abrufen, um sich die komplette Liste der zu Ihrem Online-Shop hinzugefügten virtuellen Gegenstände anzeigen zu lassen.

BEISPIEL

Copy
Full screen
Small screen
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://store.xsolla.com/api/v2/project/44056/items/virtual_items?locale=en");

xhr.send(data);

//RESPONSE

"items": [
    {
      "attributes": [],
      "description": "Conquer your foes with vindication using the Basic Blaster! ",
      "groups": [
        "all",
        "featured",
        "Xsolla",
        "weapons"
      ],
      "image_url": "https://cdn.xsolla.net/img/misc/images/0c59a7698d4f66c1008b27ee752089b7.png",
      "is_free": false,
      "name": "Xsolla Basic Blaster 1",
      "order": 1,
      "price": {
        "amount": "0.9950000000000000",
        "amount_without_discount": "1.9900000000000000",
        "currency": "USD"
      },
      "sku": "gun_1",
      "type": "virtual_good"

Zeitlich begrenzte Artikel kaufen

Nach dem erstmaligen Kauf wird der zeitlich begrenzte Artikel dem Inventar hinzugefügt.

Nach dem zweiten und weiteren Käufen gilt Folgendes:

  1. Ist der zeitlich begrenzte Artikel aktiv, wird die Artikellaufzeit zur Restlaufzeit addiert.
  2. Ist der zeitlich begrenzte Artikel inaktiv, verfällt der Artikel wie voreingestellt.

Implementieren Sie folgende Methoden, um einen zeitlich begrenzten Artikel kaufen zu können.

Get cart

Implementieren Sie für den Kauf von virtuellen Gegenständen die API-Methode Warenkorb anhand von Warenkorb-ID abrufen oder Warenkorb des aktuellen Benutzers abrufen. Die Cart ID wird genutzt, um Gegenstände hinzuzufügen bzw. zu entfernen.

BEISPIEL

Copy
Full screen
Small screen
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://store.xsolla.com/api/v2/project/44056/cart/custom_id?locale=en&currency=USD");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");

xhr.send(data);

//RESPONSE

{
  "cart_id": "custom_id",
  "is_free": true,
  "items": [],
  "price": null
}
Hinweis
Um den Schnellkauf von Gegenständen (d. h. ohne einen Warenkorb anzulegen) zu aktivieren, nutzen Sie die API-Methode Bestellung mit angegebenem Artikel anlegen.

Create order with all items

  1. Implementieren Sie eine der folgenden API-Methoden:
    1. Bestellung mit allen Artikeln aus einem angegebenen Warenkorb anlegen, wenn Sie den Warenkorb mittels ID abgerufen haben.
    2. Bestellung mit allen Artikeln aus dem aktuellen Warenkorb anlegen, wenn Sie den aktuellen Warenkorb abgerufen haben.

Die angelegte Bestellung erhält den Status New.

  1. Um das Zahlungsportal in einem neuen Fenster zu öffnen, nutzen Sie folgenden Link: https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN, wobei ACCESS_TOKEN der Token ist, den Sie beim Anlegen der Bestellung erhalten haben.
  2. So testen Sie den Zahlungsvorgang:
    1. Nutzen Sie folgende URL: https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.
    2. Legen Sie in der Anfrage als Wert für den sandbox parameter true fest.
    3. Werfen Sie einen Blick in die Liste der Bankkarten, die für Testzwecke verwendet werden können.

BEISPIEL

Copy
Full screen
Small screen
var data = JSON.stringify({
  "currency": "USD",
  "locale": "en",
  "sandbox": false
});

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("POST", "https://store.xsolla.com/api/v2/project/44056/payment/cart/custom_id");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");

xhr.send(data);

//RESPONSE  

{
  "order_id": 641,
  "token": "f4puMEFFDZcx9nv5HoNHIkPe9qghvBQo"
}

Get order

Implementieren Sie die API-Methode Bestellung abrufen, um festzustellen, ob der Kauf bereits abgewickelt wurde. Folgende Bestellungsstatus sind möglich:
  • New: Bestellung ist angelegt, wurde aber nicht bezahlt
  • Paid: Bestellung wurde bezahlt
  • Cancelled: Bestellung ist storniert
  • Done: Bestellung wurde bezahlt und der Gegenstand dem Inventar hinzugefügt
Hinweis
Die Statusprüfung sollte in regelmäßigen Abständen erfolgen, da eine einmalige Prüfung jederzeit erfolgen kann, bevor einer Bestellung der Status “Neu” zugeordnet wird.
BEISPIEL
Copy
Full screen
Small screen
var data = null;

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function () {
  if (this.readyState === this.DONE) {
    console.log(this.responseText);
  }
});

xhr.open("GET", "https://store.xsolla.com/api/v2/project/44056/order/656");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");

xhr.send(data);

//RESPONSE

{
  "content": {
    "is_free": false,
    "items": [
      {
        "is_free": false,
        "price": {
          "amount": "0.9950",
          "amount_without_discount": "1.9900",
          "currency": "USD"
        },
        "quantity": 123,
        "sku": "gun_1"
      }
    ],
    "price": {
      "amount": "122.3850",
      "amount_without_discount": "122.3850",
      "currency": "USD"
    }
  },
  "order_id": 656,
  "status": "new"
}
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!