The following documentation was deprecated. Current version is available at developers.xsolla.com

Abonnements

Das Modul "Abonnements" ermöglicht Ihnen, Abonnements an Benutzer zu verkaufen und diesen Benutzern für einen bestimmten Zeitraum Zugriff auf Ihren Dienst zu gestatten. Insbesondere können Sie:

  • Benutzer-Abonnements über ein Dashboard verwalten. Benutzer können detaillierte Informationen zum Abonnement & dem Zahlungsverhalten einsehen, das Abo-Modell ändern und das Abonnement unterbrechen/fortsetzen/kündigen.
  • Benutzer-Abonnements mit Hilfe Ihres Xsolla-Kundenportals verwalten. Sie können Abo-Modelle für jede Währung anlegen und konfigurieren, die Dauer der Probeabos festlegen, Übergangsfristen konfigurieren, sich Benutzer mit abgeschlossenen Abonnements anzeigen lassen und den Abonnementstatus ausgewählter Benutzer ändern.
  • Aktivieren Sie die automatische Verlängerung über ein gespeichertes Zahlungskonto.
  • Abonnements manuell verlängern.

Abonnement-Status

Ein Abonnement kann einen der folgenden Status aufweisen:

  • Active. Primär-Status. Das Abonnement wird nach der ersten erfolgreichen Zahlung angelegt und aktiviert. Weitere Gebühren können lediglich bei aktiven Abonnements anfallen.
  • Canceled. Das Abonnement wurde mit sofortiger Wirkung aus einem der folgenden Gründe gekündigt:

    • über eine API-Methode oder vom Xsolla-Kundenportal aus gekündigt.
    • durch Nutzer gekündigt.
    • Abonnement ist abgelaufen (falls in den Parametern ein Ablaufdatum festgelegt wurde).
    • maximale Anzahl der Versuche, eine Abbuchung durchzuführen, überschritten (drei voreingestellt; bitte wenden Sie sich an den Account Manager, um die Anzahl zu ändern).
    • Benutzer konnte im Spiel nicht gefunden werden.
    • Benutzerkonto wurde gelöscht.
  • Non renewing. Verlängerung des Abonnements deaktiviert. Das Abonnement läuft bis zum Ende des aktuellen Abrechnungszeitraums weiter. Danach erfolgt ein Statuswechsel zu Canceled. Eine Verlängerung kann aus einem der folgenden Gründe deaktiviert werden:

    • über eine API-Methode oder vom Xsolla-Kundenportal aus gekündigt.
    • Deaktiviert durch Nutzer per, in E-Mail enthaltenem Link
    • Benutzerkonto wurde gelöscht.

Integrationsleitfaden

Gehen Sie folgendermaßen vor, um das Modul zu integrieren:

  1. Registrieren Sie sich im Xsolla-Kundenportal.
  2. Legen Sie ein neues Projekt an.
  3. Konfigurieren Sie das Modul.
  4. Beziehen Sie einen Token.
  5. Konfigurieren Sie, wie das Zahlungsportals aufgerufen werden soll.
  6. Konfigurieren Sie die Handhabung von Webhooks.
  7. Testen Sie den Zahlungsvorgang aus.
  8. Veröffentlichen Sie das Modul und unterschreiben Sie die Vereinbarung.

Für die Integration benötigen Sie folgende Parameter:

  • Händler-ID — wird in der URL des Kundenportals angezeigt: https://publisher.xsolla.com/{merchant_id}/.
  • API-Schlüssel — wird unter Kundenportal > Einstellungen > Unternehmen generiert.
  • Projekt-ID — wird in der URL des Kundenportals beim Betrachten der Projekteinstellungen angezeigt: https://publisher.xsolla.com/{merchant_id}/projects/{project_id}/.
  • Geheimer Schlüssel des Projekts — wird in den Projekteinstellungen generiert.

Ein Projekt anlegen

  1. Gehen Sie zu Projekte und klicken Sie auf Neues Projekt anlegen.
  2. In den Einstellungen:
    a) Definieren Sie die Webhook-URL.
    b) Generieren Sie einen geheimen Schlüssel, um Webhooks für das Projekt signieren zu können.
    c) Aktivieren Sie das Modul "Abonnements".

Konfiguration des Moduls

  1. Gehen Sie zu den Abonnement-Moduleinstellungen und klicken Sie auf Neues Abo-Modell anlegen. Legen Sie folgende Parameter fest:
    • Name.
    • Zahlungszyklus.
  2. Klicken Sie auf Anlegen.
  3. Klicken Sie auf Zurück zur Liste der Abo-Modelle, um zu den Grundeinstellungen des Moduls zurückzukehren und, je nach Bedarf, weitere Abo-Modelle anzulegen.

Wichtig: Ein Abo-Modell kann ausschließlich eine Währung haben. Sie müssen für jede Projektwährung eine separate Gruppe von Abo-Modellen anlegen.

Store-Token beziehen

Für die Integration in den Store müssen Sie einen Token beziehen. Ein Token ist ein String, der Spiel-/Benutzerdaten und Zahlungseinstellungen enthält. Die Xsolla-API verwendet die einfache HTTP-Authentifizierung. Geben Sie Ihre Händler-ID als Benutzernamen und den API-Schlüssel als Passwort an.

Um den Sandbox-Modus zu aktivieren, legen Sie Folgendes fest: "mode" = "sandbox".

URL zum Abrufen des Tokens:

https://api.xsolla.com/merchant/merchants/{merchant_id}/token

Sie können die HTTP-POST-Anfrage ändern, indem Sie die Parameter, die Sie an das Zahlungsportal übergeben wollen, einfügen. Sowohl die Anfrage als auch die Antwort erfolgt im JSON-Format.

Im Folgenden finden Sie ein Beispiel für das Abrufen des Tokens mittels PHP und Xsollas PHP-SDK. Wenn Sie eine andere Programmiersprache verwenden, beziehen Sie sich bitte auf das CURL-basierte Beispiel (klicken Sie auf CURL).

PHP
CURL
<?php

use Xsolla\SDK\API\XsollaClient;
use Xsolla\SDK\API\PaymentUI\TokenRequest;

$tokenRequest = new TokenRequest($projectId, $userId);
$tokenRequest->setUserEmail('email@example.com')
    ->setExternalPaymentId('12345')
    ->setSandboxMode(true)
    ->setUserName('USER_NAME')
    ->setCustomParameters(array('key1' => 'value1', 'key2' => 'value2'));

$xsollaClient = XsollaClient::factory(array(
    'merchant_id' => MERCHANT_ID,
    'api_key' => API_KEY
));
$token = $xsollaClient->createPaymentUITokenFromRequest($tokenRequest);
    curl -v https://api.xsolla.com/merchant/merchants/{merchant_id}/token \
    -X POST \
    -u your_merchant_id:merchant_api_key \
    -H 'Content-Type:application/json' \
    -H 'Accept: application/json' \
    -d '
    {
        "user": {
            "id": {
                "value": "1234567"
            },
            "email": {
                "value": "email@example.com"
            }
        },
        "settings": {
            "project_id": 14004,
            "mode": "sandbox"
        }
    }'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Benutzeroberfläche des Stores aufrufen

Der Store kann folgendermaßen aufgerufen werden:

  • Mittels eingebettetem Pay-Station-Script,
  • in einem neuem Fenster oder
  • in einem iFrame.

Nutzen Sie folgende URL, um den Store im Sandbox-Modus aufzurufen: https://sandbox-secure.xsolla.com/

Pay Station einbetten

Das Script Pay Station einbetten bestimmt den Gerätetyp und ruft die Store-Benutzeroberfläche in einer Lightbox (bei Desktop-Bildschirmen) oder in einem neuen Fenster (bei mobilen Endgeräten) auf. Wir empfehlen Ihnen, asynchrones Laden von Scripten zu verwenden.

Beispiel für asynchrones Laden:

 <script>
     var options = {
         access_token: 'ACCESS_TOKEN', //TODO use access token, received on previous step
         sandbox: true //TODO please do not forget to remove this setting when going live
     };
     var s = document.createElement('script');
     s.type = "text/javascript";
     s.async = true;
     s.src = "https://static.xsolla.com/embed/paystation/1.0.7/widget.min.js";
     s.addEventListener('load', function (e) {
         XPayStationWidget.init(options);
     }, false);
     var head = document.getElementsByTagName('head')[0];
     head.appendChild(s);
 </script>

<button data-xpaystation-widget-open>Buy Credits</button>

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Neues Fenster

Nutzen Sie bitte folgenden Link, um das Zahlungsportal in einem neuen Fenster aufzurufen: https://secure.xsolla.com/paystation2/?access_token=ACCESS_TOKEN; wobei ACCESS_TOKEN der Token ist, der im vorherigen Schritt bezogen wurde.

iFrame

Um die Benutzeroberfläche des Stores in einem iFrame aufzurufen, müssen Sie Ihrerseits folgenden Mechanismus implementieren:

  • Definieren Sie den Gerätetyp (Desktop oder mobiles Endgerät) und übermitteln Sie ihn innerhalb des Tokens im settings.ui.version-Parameter;
  • Empfang von Ereignissen aus dem Zahlungsportal via postMessage.

Nutzen Sie bitte folgenden Link, um das Zahlungsportal in einem neuen Fenster aufzurufen: https://secure.xsolla.com/paystation2/?access_token=ACCESS_TOKEN; wobei ACCESS_TOKEN der Token ist, der im vorherigen Schritt bezogen wurde.

Konfiguration von Webhooks

Xsolla sendet die folgenden Webhooks an Ihr Projekt:

  • Zahlung
  • Abonnement abgeschlossen
  • Abonnement aktualisiert/verlängert
  • Rückerstattung
  • Abonnement gekündigt

Bestätigen Sie den Erhalt eines Webhooks, indem Sie mit dem HTTP-Statuscode 204 ohne Nachrichtenrumpf antworten. Weitere Informationen und Beispiele zur Handhabung von Webhooks finden Sie in der API-Referenz.

Eine Signatur erstellen

Um eine elektronische Signatur zu erstellen:

  1. Verknüpfen Sie die Daten aus der Anfrage des Xsolla-Servers mit dem geheimen Schlüssel des Projekts (wird in den Projekteinstellungen generiert).
  2. Wenden Sie den SHA1-Hash-Algorithmus bei den Strings an.
  3. Versenden Sie die Signatur im Signatur-Header.

Achten Sie bei der Handhabung von Webhooks darauf, dass die Signatur, welche Sie empfangen, mit jener übereinstimmt, die Sie im Signatur-Header festgelegt haben.

Zahlung

Immer wenn ein Benutzer eine Zahlung tätigt, sendet der Xsolla-Server einen Webhook inklusive Zahlungsdaten.

Beispiel für eine Anfrage

PHP
CURL
$request = array(
    'notification_type' => 'payment',
    'purchase' => array(
        'virtual_items' => array(
            'items' => array(
                0 => array(
                    'sku' => 'test_item1',
                    'amount' => 1,
                    ),
                1 => array(
                    'sku' => 'test_item2',
                    'amount' => 1,
                    ),
                2 => array(
                    'sku' => 'test_item3',
                    'amount' => 1,
                    ),
            )
        ),
        'total' => array(
            'currency' => 'USD',
            'amount' => 9.99
        )
    ),
    'user' => array(
        'ip' => '127.0.0.1',
        'phone' => '18777976552',
        'email' => 'email@example.com',
        'id' => '1234567',
        'country' => 'US'
    ),
    'transaction' => array(
        'id' => 87654321,
        'payment_date' => '2014-09-23T19:25:25+04:00',
        'payment_method' => 1380,
        'dry_run' => 1
    ),
    'payment_details' => array(
        'payment' => array(
            'currency' => 'USD',
            'amount' => 9.99
        ),
        'vat' => array(
            'currency' => 'USD',
            'amount' => 0
        ),
        'payout_currency_rate' => 1,
        'payout' => array(
            'currency' => 'USD',
            'amount' => 9.49
        ),
        'xsolla_fee' => array(
            'currency' => 'USD',
            'amount' => 0.19
        ),
        'payment_method_fee' => array(
            'currency' => 'USD',
            'amount' => 0.31
        )
    )
)
curl -v https://example.com/ \
-X POST \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '
{
    "notification_type": "payment",
    "purchase": {
        "virtual_items": {
            "items": [
                {
                    "sku": "test_item1",
                    "amount": 1
                },
                {
                    "sku": "test_item2",
                    "amount": 1
                },
                {
                    "sku": "test_item3",
                    "amount": 2
                },
            ]
        },
        "total": {
            "currency": "USD",
            "amount": 9.99
        }
    },
    "user": {
        "ip": "127.0.0.1",
        "phone": "18777976552",
        "email": "email@example.com",
        "id": "1234567",
        "country": "US"
    },
    "transaction": {
        "id": 87654321,
        "payment_date": "2014-09-23T19:25:25+04:00",
        "payment_method": 1380,
        "dry_run": 1
    },
    "payment_details": {
        "payment": {
            "currency": "USD",
            "amount": 9.99
        },
        "vat": {
            "currency": "USD",
            "amount": 0
        },
        "payout_currency_rate": 1,
        "payout": {
            "currency": "USD",
            "amount": 9.49
        },
        "xsolla_fee": {
            "currency": "USD",
            "amount": 0.19
        },
        "payment_method_fee": {
            "currency": "USD",
            "amount": 0.31
        }
    }
}'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Abonnement abgeschlossen

Immer wenn ein Benutzer ein Abonnement abschließt, sendet der Xsolla-Server einen Webhook inklusive Abonnement-Informationen.

PHP
CURL
<?php
$request = array(
    'notification_type' => 'create_subscription',
    'user' => (
        'id' => '1234567',
        'name' => 'Xsolla User'
    ),
    'subscription' => (
        'plan_id' => 'b5dac9c8',
        'subscription_id' => '10',
        'product_id' => 'Demo Product',
        'date_create' => '2014-09-22T19:25:25+04:00',
        'date_next_charge' => '2015-01-22T19:25:25+04:00',
        'trial' =>  (
                'value' =>  90,
                'type' =>  'day'
            )
    )
);
$ curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '{
        "notification_type":"create_subscription",
        "user":{
            "id":"1234567",
            "name":"Xsolla User"
        },
        "subscription":{
            "plan_id":"b5dac9c8",
            "subscription_id":"10",
            "product_id":"Demo Product",
            "date_create":"2014-09-22T19:25:25+04:00",
            "date_next_charge":"2015-01-22T19:25:25+04:00",
            "trial": {
                    "value": 90,
                    "type": "day"
                }
        }
    }'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Abonnement aktualisiert/verlängert

Immer wenn ein Benutzer das Abo-Modell wechselt, das Abonnement verlängert oder wenn sich das nächste Abrechnungsdatum ändert, sendet der Xsolla-Server einen Webhook.

Beispiel für eine Anfrage

PHP
CURL
<?php
$request = array(
    'notification_type' => 'update_subscription',
    'user' => (
        'id' => '1234567',
        'name' => 'Xsolla User'
    ),
    'subscription' => (
        'plan_id' => 'b5dac9c8',
        'subscription_id' => '10',
        'product_id' => 'Demo Product',
        'date_next_charge' => '2015-01-22T19:25:25+04:00'
    )
);
$ curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '{
        "notification_type":"update_subscription",
        "user":{
            "id":"1234567",
            "name":"Xsolla User"
        },
        "subscription":{
            "plan_id":"b5dac9c8",
            "subscription_id":"10",
            "product_id":"Demo Product",
            "date_next_charge":"2015-01-22T19:25:25+04:00"
        }
    }'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Rückerstattung

Immer wenn ein Benutzer eine Zahlung storniert, sendet der Xsolla-Server einen Webhook inklusive Zahlungsinformationen.

Beispiel für eine Anfrage

PHP
CURL
$request = array(
    'notification_type' => 'refund',
    'purchase' => array(
        'virtual_currency' => array(
            'name' => 'Coins',
            'quantity' => 100,
            'currency' => 'USD',
            'amount' => 9.99
        ),
        'total' => array(
            'currency' => 'USD',
            'amount' => 9.99
        )
    ),
    'user' => array(
        'ip' => '127.0.0.1',
        'phone' => '18777976552',
        'email' => 'email@example.com',
        'id' => '1234567',
        'country' => 'US'
    ),
    'transaction' => array(
        'id' => 87654321,
        'payment_date' => '2014-09-23T19:25:25+04:00',
        'payment_method' => 1380,
        'dry_run' => 1
    ),
    'refund_details' => (
            'code' => 1,
            'reason' => 'Fraud'
    ),
    'payment_details' => array(
        'payment' => array(
            'currency' => 'USD',
            'amount' => 9.99
        ),
        'vat' => array(
            'currency' => 'USD',
            'amount' => 0
        ),
        'payout_currency_rate' => 1,
        'payout' => array(
            'currency' => 'USD',
            'amount' => 9.49
        ),
        'xsolla_fee' => array(
            'currency' => 'USD',
            'amount' => 0.19
        ),
        'payment_method_fee' => array(
            'currency' => 'USD',
            'amount' => 0.31
        )
    )
);
curl -v https://example.com/ \
-X POST \
-H 'Content-Type:application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '
{
    "notification_type":"refund",
    "purchase":{
        "virtual_currency":{
            "name": "Coins",
            "quantity":10,
            "currency":"USD",
            "amount":100
        },
        "subscription":{
            "plan_id": "b5dac9c8",
            "subscription_id": "10",
            "date_create": "2014-09-22T19:25:25+04:00",
            "currency": "USD",
            "amount": 9.99
        },
        "checkout":{
            "currency":"USD",
            "amount":50
        },
        "virtual_items":{
            "items":[
                {
                    "sku": "test_item1",
                    "amount":1
                }
            ],
            "currency":"USD",
            "amount":50
        },
        "total":{
            "currency":"USD",
            "amount":200
        }
    },
    "user": {
        "ip": "127.0.0.1",
        "phone": "18777976552",
        "email": "email@example.com",
        "id": "1234567",
        "name": "Xsolla User",
        "country": "US"
    },
    "transaction":{
        "id":1,
        "external_id":1,
        "dry_run":1,
        "agreement":1
    },
    "refund_details":{
        "code":1,
        "reason":"Fraud"
    },
    "payment_details":{
        "xsolla_fee":{
            "currency":"USD",
            "amount":"10"
        },
        "payout":{
            "currency":"USD",
            "amount":"200"
        },
        "payment_method_fee":{
            "currency":"USD",
            "amount":"20"
        },
        "payment":{
            "currency":"USD",
           "amount":"230"
        }
    }
}'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Abonnement gekündigt

Immer wenn ein Abonnement gekündigt wird, sendet der Xsolla-Server einen Webhook.

Beispiel für eine Anfrage

PHP
CURL
<?php
$request = array(
    'notification_type' => 'cancel_subscription',
    'user' => (
        'id' => '1234567',
        'name' => 'Xsolla User'
    ),
    'subscription' => (
        'plan_id' => 'b5dac9c8',
        'subscription_id' => '10',
        'product_id' => 'Demo Product',
        'date_create' => '2014-09-22T19:25:25+04:00',
        'date_end' => '2015-01-22T19:25:25+04:00',
    )
);
$ curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Accept: application/json' \
-H 'Content-Type: application/json' \
-H 'Authorization: Signature 13342703ccaca5064ad33ba451d800c5e823db8f' \
-d '{
        "notification_type":"cancel_subscription",
        "user":{
            "id":"1234567",
            "name":"Xsolla User"
        },
        "subscription":{
            "plan_id":"b5dac9c8",
            "subscription_id":"10",
            "product_id":"Demo Product",
            "date_create":"2014-09-22T19:25:25+04:00",
            "date_end":"2015-01-22T19:25:25+04:00"
        }
    }'

Die vollständige Liste der Parameter finden Sie in der API-Referenz.

Webhooks testen

Gehen Sie folgendermaßen vor, um einen Webhook-Handler zu testen:

  1. Rufen Sie die Moduleinstellungen in Ihrem Kundenportal auf.
  2. Gehen Sie zur Registerkarte Testen.
  3. Geben Sie die Testdaten ein und klicken Sie auf Test. Der Xsolla-Server wird alle möglichen Webhooks senden.
  4. Im Falle einer gültigen Antwort wird der Test grün und im Falle eines Fehlers rot gekennzeichnet.

Zahlungsvorgang austesten

Xsolla-Sandbox ist eine eigenständige Umgebung, welche alle Funktionen der Live-Umgebung mit Ausnahme echter Zahlungen unterstützt. Sie können auf den Sandbox-Modus zugreifen, indem Sie "mode" = "sandbox" beim Abrufen des Tokens versenden.

Gehen Sie folgendermaßen vor, um eine Kartenzahlung zu testen:

  1. Rufen Sie den Store im Sandbox-Modus auf.
  2. Wählen Sie den Gegenstand aus, den Sie erwerben möchten.
  3. Klicken Sie auf Kredit-/Debitkarten.
  4. Geben Sie die Kreditkartendaten aus der nachfolgenden Tabelle ein. Geben Sie alle Werte in die verbleibenden Felder ein. Sie können auch falsche Angaben (Kartennummer, Ablaufdatum oder CVV) angeben, um einen Fehler zu generieren.

Liste der Bankkarten, die für Testzwecke verwendet werden können

Wichtig: Sandbox-Kartenzahlungen können lediglich in USD, EUR, RUB, GBP, SGD, HKD oder THB getätigt werden.

Veröffentlichung des Moduls

Um das Modul nach dessen erfolgreichem Test zu veröffentlichen, öffnen Sie dessen Einstellungen im Kundenportal, gehen Sie zur Registerkarte Veröffentlichen und klicken Sie auf Ein.

Wichtig: Um echte Zahlungen akzeptieren zu können, müssen Sie Folgendes tun:

  1. Entfernen Sie den "sandbox"-Modus.
  2. Unterzeichnen Sie die Vereinbarung.

Betrug durch In-Game-Parameter verhindern

Sie können das im Token übergebene custom_parameters-Objekt verwenden, um die Ingame-Daten des Benutzers zu versenden und verdächtige Aktivitäten zu erkennen. Zum Beispiel kann ein Spieler, der wenig Zeit im Spiel verbringt, aber einen hohen Level hat, ein Betrüger sein, der ein Konto erstellt hat, um es zu verkaufen, nachdem er den Spielecharakter mit einer gestohlenen Bankkarte hochgelevelt hat.

Liste der verfügbaren Parameter

Teilen Sie Ihrem Account Manager die Parameter, welche Sie übergeben möchten, und deren Triggerwerte mit. Wir werden solche Daten nutzen, um Ihre Filter zur Betrugsbekämpfung zu konfigurieren.

Mit einer ausgewählten Zahlungsart bezahlen

Wenn Sie den Store aufrufen, können Sie die ID der Zahlungsart im settings.payment_method-Parameter übermitteln. In diesem Fall wird der Benutzer sofort zum Zahlungsformular der gewählten Zahlungsart weitergeleitet.

Beispiel für eine Anfrage

CURL
    curl -v https://api.xsolla.com/merchant/merchants/{merchant_id}/token \
    -X POST \
    -u your_merchant_id:merchant_api_key \
    -H 'Content-Type:application/json' \
    -H 'Accept: application/json' \
    -d '
    {
        "user": {
            "id": {
                "value": "1234567"
            },
        },
        "settings": {
            "project_id": 14004,
            "payment_method": 24
        }
    }'

Die Liste mit den IDs der Zahlungsarten erhalten Sie unter Kundenportal > Zahlungssysteme oder über die API-Methode "Zahlungssysteme auflisten".

Ausgewählte Abo-Modelle erwerben

Wenn Sie den Store aufrufen, können Sie die ID des Abo-Modells im purchase.subscription.plan_id-Parameter übermitteln. In diesem Fall wird der Benutzer sofort zum Zahlungsportal weitergeleitet.

Beispiel für eine Anfrage

CURL
    curl -v https://api.xsolla.com/merchant/merchants/{merchant_id}/token \
    -X POST \
    -u your_merchant_id:merchant_api_key \
    -H 'Content-Type:application/json' \
    -H 'Accept: application/json' \
    -d '
    {
        "user": {
            "id": {
                "value": "1234567"
            },
        },
        "settings": {
            "project_id": 14004
        },
        "purchase": {
            "subscription": {
                "plan_id": 123
                },
        }
    }'

Letzte Zahlung stornieren, falls das Abonnement gekündigt wird

Wenn ein Abonnement gekündigt wird, können Sie die letzte Zahlung stornieren. Verwenden Sie dazu den cancel_subscription_payment-Parameter in der Methode "Abonnement aktualisieren". Sie können dem Benutzer die Wahl überlassen, ob seine letzte Zahlung zurückerstattet wird, falls das Abonnement gekündigt wird. Bitte kontaktieren Sie Ihren Account Manager, um diese Funktion zu aktivieren.

Änderung des Abo-Modells

Sie können das Abo-Modell mit der Methode "Abo-Modell aktualisieren" ändern. Das neue Abo-Modell tritt mit dem nächsten Abrechnungszeitraum in Kraft.

Sie können das Abo-Modell nicht ändern, wenn:

  • der Benutzer ein aktives Abonnement mit diesem Abo-Modell besitzt,
  • der Status des Abonnements Canceled oder Non renewing lautet, oder
  • falls es sich um ein Probeabo handelt.

Wenn der Versuch, das Abo-Modell zu ändern, fehlschlägt, wird das Abonnement gekündigt.

Abonnement manuell verlängern

Standardmäßig wird das Abonnement automatisch mit Hilfe der gespeicherten Zahlungsdaten des Benutzers verlängert. Sie können dem Benutzer die manuelle Verlängerung seines Abonnements mit Zahlungsarten ermöglichen, die weder gespeichert werden können noch automatische Abbuchungen unterstützen. Um das Abonnement am Ende des Abrechnungszeitraums zu verlängern, muss der Benutzer Anweisungen, die er per E-Mail erhält, folgen. Bitte kontaktieren Sie Ihren Account Manager, um diese Funktion zu aktivieren.

Verwendung von Produkten

Wenn Sie dieselben Abo-Modelle in mehreren Abonnements verwenden, können Sie die Abonnements als Teil eines Produkts verkaufen. Ein Produkt ist eine Sammlung von Abo-Modellen, die ein Benutzer abonnieren kann und welche zu einer Gruppe gehören. Sie können dasselbe Abo-Modell für verschiedene Produkte einsetzen.

Verwenden Sie die folgenden API-Methoden, um Produkte zu konfigurieren: Produkt anlegen/aktualisieren/ löschen; Produkte auflisten.

Belohnungen

Das Abonnement-Modul ermöglicht es Ihnen, Benutzer für die Verlängerung ihres Abonnements mit Ingame-Währung oder virtuellen Gegenständen zu belohnen. Um die Funktion zu aktivieren, schalten Sie zunächst das Modul Virtuelle Währung und/oder das Modul Virtuelle Gegenstände ein. Wenden Sie sich im Zweifelsfall an Ihren Account Manager.