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.
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:
- Registrieren Sie sich im Xsolla-Kundenportal.
- Navigieren Sie zu Projekte, und klicken Sie auf die Schaltfläche Projekt erstellen.
- Geben Sie einen Projektnamen an, und klicken Sie auf Erstellen.
- Verknüpfen Sie den Online-Shop mit Ihrem Projekt.
- Verknüpfen Sie das Modul Virtuelle Gegenstände.
Integrationsablauf
- Erstellen Sie eine Gegenstandsgruppe.
- Erstellen Sie Gegenstände:
- Wählen Sie beim Erstellen eines neuen Gegenstands unter Gegenstandseigenschaften die Option zeitlich begrenzte Artikel.
- Geben Sie das Ablaufdatum an.
- Implementieren Sie den Abruf zeitlich begrenzter Artikel aus dem Katalog.
- 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
- javascript
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:
- Ist der zeitlich begrenzte Artikel aktiv, wird die Artikellaufzeit zur Restlaufzeit addiert.
- 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 Warenkorb-ID dient dazu, Gegenstände hinzuzufügen bzw. zu entfernen.
BEISPIEL
- javascript
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¤cy=USD");
xhr.setRequestHeader("authorization", "Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE5NjIyMzQwNDgsImlzcyI6Imh0dHBzOi8vbG9naW4ueHNvbGxhLmNvbSIsImlhdCI6MTU2MjE0NzY0OCwidXNlcm5hbWUiOiJ4c29sbGEiLCJ4c29sbGFfbG9naW5fYWNjZXNzX2tleSI6IjA2SWF2ZHpDeEVHbm5aMTlpLUc5TmMxVWFfTWFZOXhTR3ZEVEY4OFE3RnMiLCJzdWIiOiJkMzQyZGFkMi05ZDU5LTExZTktYTM4NC00MjAxMGFhODAwM2YiLCJlbWFpbCI6InN1cHBvcnRAeHNvbGxhLmNvbSIsInR5cGUiOiJ4c29sbGFfbG9naW4iLCJ4c29sbGFfbG9naW5fcHJvamVjdF9pZCI6ImU2ZGZhYWM2LTc4YTgtMTFlOS05MjQ0LTQyMDEwYWE4MDAwNCIsInB1Ymxpc2hlcl9pZCI6MTU5MjR9.GCrW42OguZbLZTaoixCZgAeNLGH2xCeJHxl8u8Xn2aI");
xhr.send(data);
//RESPONSE
{
"cart_id": "custom_id",
"is_free": true,
"items": [],
"price": null
}
Create order with all items
- Implementieren Sie eine der folgenden API-Methoden:
- Bestellung mit allen Artikeln aus einem angegebenen Warenkorb anlegen, wenn Sie den Warenkorb mittels ID abgerufen haben.
- Bestellung mit allen Artikeln aus dem aktuellen Warenkorb anlegen, wenn Sie den aktuellen Warenkorb abgerufen haben.
Die angelegte Bestellung erhält den Status New.
- Um das Zahlungsportal in einem neuen Fenster zu öffnen, nutzen Sie folgenden Link:
https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
, wobeiACCESS_TOKEN
der Token ist, den Sie beim Anlegen der Bestellung erhalten haben. - So testen Sie den Zahlungsvorgang:
- Nutzen Sie folgende URL:
https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN
. - Legen Sie in der Anfrage als Wert für den sandbox parameter true fest.
- Werfen Sie einen Blick in die Liste der Bankkarten, die für Testzwecke verwendet werden können.
- Nutzen Sie folgende URL:
BEISPIEL
- javascript
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
- javascript
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"
}
Haben Sie einen Tippfehler oder einen anderen Textfehler gefunden? Wählen Sie den Text aus und drücken Sie Strg+Eingabe.