Pay Station API v1.0

Überblick

Der Abschnitt enthält Beschreibungen der Methoden für die Zusammenarbeit mit der Bezahlstation. Verwenden Sie die Basisauthentifizierung, um Methoden aufzurufen. Um das Zahlungsportal aufzurufen und sichere Zahlungen zu aktivieren, müssen Sie einen Token abrufen.

Endpunktpfade: https://api.xsolla.com.

Bezahlstation öffnen

Die Bezahlstation ist ein ganzheitliches Zahlungsportal, das Ihren Benutzern die Möglichkeit bietet, Spiele und Gegenstände auf Ihrer Website zu kaufen. Zur einfachen Implementierung des Zahlungsportals auf Ihrer Website empfiehlt es sich, das Skripts aus unserem CDN herunterzuladen. Verwenden Sie diese URL, um das Skript auf Ihrer Website zu integrieren. Weitere Informationen finden Sie in unserem GitHub Repository.

Script-Initialisierungsparameter:

ParameterTypBeschreibung
access_token
stringToken; wird über die API empfangen. Erforderlich.
sandbox
booleanZum Testen des Zahlungsvorgangs auf true festlegen: Anstelle von secure.xsolla.com wird sandbox-secure.xsolla.com verwendet.
lightbox
objectLightbox-Parameter (Objekt; nur für die Desktop-Version).
lightbox.width
stringRahmenbreite der Lightbox. Falls als Wert null festgelegt ist, wird die Breite der Bezahlstation verwendet. Standardwert ist null.
lightbox.height
stringRahmenhöhe der Lightbox. Falls als Wert null festgelegt ist, wird die Höhe der Bezahlstation verwendet. Standardwert ist 100%.
lightbox.zIndex
integerDefiniert die Stapelanordnung. Standardwert ist 1000.
lightbox.overlayOpacity
integerDeckkraft der Einblendung (0 bis 1). Standardwert ist .6.
lightbox.overlayBackground
stringHintergrundfarbe der Einblendung. Standardwert ist #000000.
lightbox.modal
booleanFalls true festgelegt ist, kann der Lightbox-Rahmen nicht geschlossen werden. Standardwert ist false.
lightbox.closeByClick
booleanFalls true festgelegt ist, wird die Lightbox durch Klick auf die Einblendung geschlossen. Standardwert ist true.
lightbox.closeByKeyboard
booleanFalls true festgelegt ist, wird die Lightbox durch Drücken der Escape-Taste geschlossen. Standardwert ist true.
lightbox.contentBackground
stringHintergrundfarbe des Rahmens. Standardwert ist #ffffff. Beachten Sie, dass diese Farbänderungen keinen Einfluss auf den iframe der Bezahlstation selbst haben, sondern nur auf die Einstellungen der Lightbox, in dem der iframe angezeigt wird.
lightbox.contentMargin
stringBreite des Rahmens. Standardwert ist 10px.
lightbox.spinner
stringArt der animierten Ladeanzeige. Als Wert lässt sich entweder xsolla oder round festlegen. Standardwert ist xsolla.
lightbox.spinnerColor
stringFarbe des Ladekreises. Kein Wert voreingestellt.
childWindow
objectOptionen für das untergeordnete Fenster, welches die Benutzeroberfläche der Bezahlstation enthält. Wird in der mobilen Version unterstützt.
childWindow.target
stringStelle, an welcher das Bezahlstation-Fenster geöffnet werden soll. Als Wert lässt sich entweder _blank, _self, _parent festlegen. Standardwert ist _blank.

Das Script ermöglicht Ihnen, die Ereignisse im Zahlungsportal zu verfolgen. Je nach Art des Ereignisses können Sie verschiedene Aktionen auf der Website ausführen.

Liste der Ereignisse:

ParameterBeschreibung
initWidget initialisiert.
openWidget geöffnet.
loadZahlungsportal (Bezahlstation) geladen.
closeZahlungsportal (Bezahlstation) geschlossen.
statusBenutzer befindet sich auf der Statusseite.
status-invoiceBenutzer befindet sich auf der Statusseite; Zahlung im Gange.
status-deliveringBenutzer befindet sich auf der Statusseite; Zahlung abgeschlossen; Zahlungsbestätigung wurde versendet.
status-doneBenutzer befindet sich auf der Statusseite, Zahlung wurde dem Benutzerkonto gutgeschrieben.
status-troubledBenutzer befindet sich auf der Statusseite; Zahlung fehlgeschlagen.

Wenn Sie den Ladevorgang für das Zahlungsportal selbst initialisieren möchten, verwenden Sie folgenden Link: https://secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

Note: Für das Aufrufen des Zahlungsportals muss zwingend der Präfix https:// verwendet werden.

Für Testzwecke steht Ihnen folgende URL zur Verfügung: https://sandbox-secure.xsolla.com/paystation3/?access_token=ACCESS_TOKEN.

Notice: Der Parameter access_token enthält personenbezogene Nutzerdaten. Stellen Sie sicher, dass Sie Server-zu-Server-Kommunikation einsetzen, wenn Sie diesen Parameter abrufen.

Token

Aus Sicherheitsgründen behandelt die Xsolla-API Zahlungsparameter innerhalb eines Tokens, anstatt sie direkt über GET-Anfragemethode zu empfangen. Sie müssen vor dem Aufbau der Zahlungsseite einen neuen Token beziehen. Ein Token ist 24 Stunden lang gültig.

Token abrufen

Sie können einen Token mit beliebigen Nutzerparametern erstellen. Senden Sie diese Parameter beim Beziehen des Tokens. Wir senden diese Parameter nach erfolgreicher Bezahlung an Sie zurück. Ein Token kann ausschließlich Parameter enthalten, die entweder in diesem Dokument beschrieben sind oder vom Partner vorher definiert wurden.

Notice: Diese API-Methode lässt sich unter hoher Last nicht verwenden. Bei einer hohen Anzahl von Anfragen können Ratenbegrenzungen greifen. Erkundigen Sie sich bei Ihrem Account Manager nach den Ratenbegrenzungen für diese API-Methode.

HTTP-ANFRAGE

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token

ParameterTypBeschreibung
user
objectBenutzerdaten (Objekt).
user.id
objectBenutzer-ID (Objekt). Erforderlich.
user.id.value
stringBenutzer-ID.
user.name
objectBenutzername (Objekt).
user.name.value
stringBenutzername.
user.age
integerAlter des Benutzers.
user.email
objectE-Mail-Adresse des Benutzers (Objekt). Das user.email-Objekt ist ein integraler Bestandteil beim Erstellen von Betrugsschutzmodellen und bei der Zahlungsabwicklung. Es ist sowohl für Xsolla als auch für Zahlungssysteme erforderlich. Das Fehlen dieses Parameters kann zu niedrigeren Akzeptanzraten führen. Erforderlich.
user.email.value
stringE-Mail-Adresse des Benutzers. Muss gemäß RFC 822-Protokoll gültig sein. Erforderlich.
user.phone
objectTelefonnummer des Benutzers (Objekt).
user.phone.value
stringTelefonnummer des Benutzers.
user.country
objectLand des Benutzers (Objekt).
user.country.value
stringLändercode, bestehend aus 2 Großbuchstaben gemäß ISO 3166-1 ALPHA-2.
user.country.allow_modify
booleanLegt fest, ob der Benutzer das Land im Zahlungsportal ändern kann. Standardwert ist false.
user.attributes
objectBenutzerattribute zum Filtern der Liste der Gegenstände; repräsentiert durch eine gültige Reihe von JSON-Objekten bestehend aus Schlüssel-Wert-Paaren.
user.steam_id
objectSteam-ID des Benutzers (Objekt).
user.steam_id.value
stringSteam-ID.
user.tracking_id
objectTracking-ID des Benutzers (Objekt).
user.tracking_id.value
stringEindeutige Tracking-ID (wird bei Marketingkampagnen verwendet).
user.public_id.value
stringParameter, durch den der Benutzer eindeutig identifizierbar ist und der dem Benutzer bekannt ist (E-Mail, Benutzername, usw.). Gestattet dem Benutzer, Käufe außerhalb des Game-Stores zu tätigen (z. B. via Verkaufsterminals).
user.utm
objectDatenverkehrsattribute (Objekt).
user.utm.utm_source
stringUrsprung des Datenverkehrs.
user.utm.utm_medium
stringDatenverkehrskanal (kontextbezogene Anzeigen, mediale Anzeigen, E-Mail-Listen, usw.).
user.utm.utm_campaign
stringKampagnenbezeichnung, ins Englische transliteriert oder übersetzt.
user.utm.utm_term
stringKampagnen-Keyword. Falls festgelegt, basieren die Statistiken auf den Keywords, die für die Zielgruppenwerbung verwendet werden, anstatt auf spezifischen Suchanfragen. In Google Analytics ist der angegebene utm_term Teil des allgemeinen Suchbegriffberichts.
user.utm.utm_content
stringKampagneninhalt.
booleanLegt fest, ob der Benutzer eine juristische Person ist.
objectObjekt mit Angaben zur juristischen Person. Objekt und alle seine Parameter sind erforderlich, falls für user.is_legal true festgelegt ist.
stringVollständiger Name des Unternehmens.
stringVollständige Unternehmensanschrift.
stringSteuerliche Identifikationsnummer.
stringLand des Unternehmenssitzes. Ländercode, bestehend aus 2 Großbuchstaben gemäß ISO 3166-1 ALPHA-2.
settings
objectBenutzerdefinierte Projekteinstellungen (Objekt).
settings.external_id
stringExterne ID der Transaktion.
settings.project_id
integerXsolla-ID des Spiels. Kann im Kundenportal eingesehen werden. Erforderlich.
settings.language
stringSprache der Benutzeroberfläche. Sprachencode, bestehend aus 2 Kleinbuchstaben.
settings.return_url
stringSeite, zu welcher der Benutzer nach der Zahlung weitergeleitet wird. Die folgenden Parameter werden dem Link automatisch hinzugefügt: user_id, foreigninvoice, invoice_id, status.
settings.redirect_policy
objectEinstellungen für die Weiterleitungsregeln (Objekt).
settings.redirect_policy.redirect_conditions
stringZahlungsstatus, bei dem ein Benutzer zur Rückgabe-URL weitergeleitet wird. Möglich sind: none, successful, successful_or_canceled oder any.
settings.redirect_policy.delay
integerVerzögerung (in Sekunden), nach der ein Benutzer automatisch zur Rückgabe-URL weitergeleitet wird.
settings.redirect_policy.status_for_manual_redirection
stringZahlungsstatus, bei dem eine Schaltfläche angezeigt wird, die einen Benutzer zur Rückgabe-URL weiterleitet. Möglich sind: none, successful, successful_or_canceled oder any.
settings.redirect_policy.redirect_button_caption
stringText auf der Schaltfläche für die manuelle Weiterleitung.
settings.currency
stringBevorzugte Zahlungswährung. Währungscode, bestehend aus drei Buchstaben gemäß ISO 4217.
settings.mode
stringLegen Sie als Wert sandbox fest, um den Zahlungsvorgang zu testen. Nutzen Sie in diesem Fall https://sandbox-secure.xsolla.com, um auf die Test-Zahlungsportal zuzugreifen.
settings.payment_method
integerID der Zahlungsart.
settings.payment_widget
stringZahlungs-Widget. Kann paybycash oder giftcard sein. Je nach festgelegtem Parameter wird der Benutzer zum Bargeldzahlung- bzw. zum Geschenkkarten-Widget weitergeleitet.
settings.ui
objectSchnittstellen-Einstellungen (Objekt).
settings.ui.theme
stringTheme des Zahlungsportals. Als Wert lässt sich entweder default oder default_dark festlegen.
settings.ui.size
stringGröße des Zahlungsportals. Folgende Größen sind möglich:
  • small: die kleinstmögliche Größe des Zahlungsportals. Verwenden Sie diese, wenn die Fenstergröße begrenzt ist (Abmessungen: 620 x 630)
  • medium: empfohlene Größe. Verwenden Sie diese, um das Zahlungsportal in einer Lightbox darzustellen (Abmessungen: 820 x 840)
  • large: optimal für die Anzeige des Zahlungsportals in einem neuen Fenster/Registerkarte (Abmessungen: 820 x 840)
settings.ui.version
stringGerätetyp. Als Wert lässt sich entweder desktop (voreingestellt) oder mobile festlegen.
settings.ui.desktop
objectSchnittstellen-Einstellungen für die Desktop-Version (Objekt).
settings.ui.desktop.header
objectEinstellungen für den Header (Objekt).
settings.ui.desktop.header.is_visible
booleanLegt fest, ob der Header im Zahlungsportal angezeigt wird.
booleanFalls true festgelegt ist, wird Ihr Logo im Header angezeigt (senden Sie dazu das Logo als Bilddatei an Ihren Account Manager).
settings.ui.desktop.header.visible_name
booleanLegt fest, ob der Projektname im Header angezeigt wird.
settings.ui.desktop.header.visible_purchase
booleanLegt fest, ob die Kaufbeschreibung (purchase.description.value) im Header angezeigt wird. Standardwert ist true.
settings.ui.desktop.header.type
stringErscheinungsbild des Headers. Als Wert lässt sich entweder compact (Projektname und Benutzer-ID sind ausgeblendet) oder normal(voreingestellt) festlegen.
settings.ui.desktop.header.close_button
booleanLegt fest, ob eine Schließen-Schaltfläche in der Desktop-Version der Bezahlstation angezeigt wird. Die Schaltfläche schließt die Bezahlstation und leitet den Benutzer an die im settings.return_url-Parameter angegebene URL weiter. Standardwert ist false.
settings.ui.desktop.subscription_list
objectEinstellungen zur Liste der Abo-Modelle (Objekt).
settings.ui.desktop.subscription_list.layout
stringListenvorlage. Als Wert lässt sich entweder list (voreingestellt) oder grid festlegen.
settings.ui.desktop.subscription_list.description
stringJeglicher Text, der im Zahlungsportal oberhalb der Liste der verfügbaren Abo-Modelle angezeigt werden soll.
settings.ui.desktop.subscription_list.display_local_price
booleanFalls true festgelegt ist und die Landeswährung des Benutzers sich von der für das Abo-Modell festgelegten Währung unterscheidet, werden dem Benutzer beide Preise angezeigt: Einer in der Landes- und der andere in der Basiswährung.
settings.ui.desktop.virtual_item_list
objectEinstellungen zur Liste der virtuellen Gegenstände (Objekt).
settings.ui.desktop.virtual_item_list.layout
stringListenvorlage. Als Wert lässt sich entweder list (voreingestellt) oder grid festlegen.
settings.ui.desktop.virtual_item_list.button_with_price
booleanFalls true festgelegt ist, wird der Preis auf der Schaltfläche angezeigt. Falls false festgelegt ist, wird der Preis links neben der Schaltfläche angezeigt. Standardwert ist false.
settings.ui.desktop.virtual_item_list.view
stringGruppen virtueller Gegenstände in vertikalem/horizontalem Menü anzeigen. Als Wert lässt sich entweder horizontal_navigation oder vertical (voreingestellt) festlegen.
settings.ui.desktop.virtual_currency_list
objectEinstellungen zur Liste der virtuellen Währungen (Objekt).
settings.ui.desktop.virtual_currency_list.description
stringJeglicher Text, zur Anzeige oberhalb der Liste der virtuellen Währungen.
settings.ui.desktop.virtual_currency_list.button_with_price
booleanFalls true festgelegt ist, wird der Preis auf der Schaltfläche angezeigt. Falls false festgelegt ist, wird der Preis links neben der Schaltfläche angezeigt. Standardwert ist false.
settings.ui.header.visible_virtual_currency_balance
booleanLegt fest, ob dieses Element im Zahlungsportal ausgeblendet werden kann. Standardwert ist true.
settings.ui.mobile.mode
stringEin Benutzer kann nur mit seinen gespeicherten Zahlungsmethoden bezahlen. Als Wert lässt sich saved_accounts festlegen.
settings.ui.mobile.header.close_button
booleanLegt fest, ob eine Schließen-Schaltfläche in der mobilen Version der Bezahlstation angezeigt wird. Die Schaltfläche schließt die Bezahlstation und leitet den Benutzer an die im settings.return_url-Parameter angegebene URL weiter. Standardwert ist false.
booleanLegt fest, ob der Footer in der mobilen Version des Zahlungsportals ausgeblendet ist.
settings.ui.license_url
stringLink zur EULA.
settings.ui.components
objectMenü-Einstellungen (Objekt).
settings.ui.components.virtual_items
objectUntermenü "Virtuelle Gegenstände".
settings.ui.components.virtual_items.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.components.virtual_items.hidden
booleanLegt fest, ob das Untermenü angezeigt wird.
settings.ui.components.virtual_items.selected_group
stringGruppe, die nach dem Öffnen der Registerkarte "Virtuelle Gegenstände" angezeigt wird.
settings.ui.components.virtual_items.selected_item
stringGegenstand, der nach dem Öffnen der Registerkarte "Virtuelle Gegenstände" angezeigt wird (SKU des Gegenstands).
settings.ui.components.virtual_currency
objectUntermenü "Virtuelle Währung".
settings.ui.components.virtual_currency.custom_amount
booleanLegt fest, ob der Benutzer eine willkürliche Menge der virtuellen Währung im Zahlungsportal eingeben kann.
settings.ui.components.virtual_currency.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.components.virtual_currency.hidden
booleanLegt fest, ob das Untermenü angezeigt wird.
settings.ui.components.subscriptions
objectUntermenü "Abo-Modelle" (Objekt).
settings.ui.components.subscriptions.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.components.subscriptions.hidden
booleanLegt fest, ob das Untermenü angezeigt wird.
settings.ui.mode
stringBenutzeroberflächenmodus in der Bezahlstation. Als Wert lässt sich lediglich user_account festlegen: Der Header enthält ausschließlich die Navigationsleiste des Benutzerkontos und der Benutzer kann kein Produkt auswählen oder eine Zahlung tätigen. Dieser Modus ist nur in der Desktop-Version verfügbar.
settings.ui.user_account
objectDetails zum Benutzerkonto (Objekt).
settings.ui.user_account.info
objectSeite Mein Konto.
settings.ui.user_account.info.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.user_account.info.enable
booleanLegt fest, ob das Untermenü angezeigt wird. Standardwert ist false.
settings.ui.user_account.history
objectUntermenü "Historie".
settings.ui.user_account.history.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.user_account.history.enable
booleanLegt fest, ob das Untermenü angezeigt wird. Standardwert ist false.
settings.ui.user_account.payment_accounts
objectUntermenü Meine Zahlungskonten.
settings.ui.user_account.payment_accounts.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.user_account.payment_accounts.enable
booleanLegt fest, ob das Untermenü angezeigt wird. Standardwert ist false.
settings.ui.user_account.subscriptions
objectUntermenü Abonnements verwalten.
settings.ui.user_account.subscriptions.order
integerPosition des Untermenüs im Hauptmenü.
settings.ui.user_account.subscriptions.enable
booleanLegt fest, ob das Untermenü angezeigt wird. Standardwert ist false.
purchase
objectObjekt, welches Angaben zum Kauf enthält.
purchase.virtual_currency
objectObjekt, welches Angaben zur virtuellen Währung enthält.
purchase.virtual_currency.quantity
floatKaufbetrag in der virtuellen Währung.
purchase.virtual_currency.currency
stringWährung, in der das Virtuelle-Währungs-Angebotspaket erworben werden kann und die bei allen Kalkulationen verwendet werden soll.
purchase.virtual_items
objectObjekt mit Daten über virtuelle Gegenstände, die erworben werden können.
purchase.virtual_items.currency
stringWährung der bezogenen Gegenstände, die bei allen Kalkulationen verwendet werden soll.
purchase.virtual_items.items
arrayDaten zum Gegenstand (Array).
purchase.virtual_items.items.sku
stringID des Gegenstands.
purchase.virtual_items.items.amount
integerGegenstandsmenge.
purchase.virtual_items.available_groups
arrayIDs der Gegenstandsgruppen (Array). Im Zahlungsportal werden lediglich Gegenstände aus der festgelegten Gruppe angezeigt.
purchase.subscription
objectDaten zum Abonnement (Objekt).
purchase.subscription.plan_id
stringID des Abo-Modells.
purchase.subscription.operation
stringDiese Operationsart kommt beim Abo-Modell des Nutzers zur Anwendung. Zur Änderung des Abo-Modells muss der change_plan-Wert übermittelt werden. Sie müssen die ID des neuen Abo-Modells im purchase.subscription.plan_id-Parameter festlegen.
purchase.subscription.product_id
stringProdukt-ID.
purchase.subscription.currency
stringWährung des Abo-Modells, die bei allen Kalkulationen verwendet werden soll.
purchase.subscription.available_plans
arrayAbonnement-Modelle (Array), die im Zahlungsportal angezeigt werden sollen.
purchase.subscription.trial_days
integerProbezeitraum in Tagen.
purchase.pin_codes
objectSpielschlüssel (Objekt).
purchase.pin_codes.currency
stringWährung eines Spielschlüssels innerhalb der Bestellung, die bei allen Kalkulationen verwendet werden soll.
purchase.pin_codes.codes
arraySpielschlüssel (Array).
purchase.pin_codes.codes.digital_content
stringIm Kundenportal festgelegte Spiel-SKU.
purchase.pin_codes.codes.drm
stringDie für die Auslieferung des Spiels verwendete DRM-Plattform. Als Wert lässt sich entweder steam, playstation, xbox, uplay, origin, drmfree, gog, epicgames, nintendo_eshop, discord_game_store oder oculus festlegen. Stellen Sie sicher, dass Sie die benötigten DRM-Plattformen in Ihrem Kundenportal konfiguriert haben. Falls nicht im Token übermittelt, wird dieser Parameter durch den Benutzer im Zahlungsportal ausgewählt.
purchase.pin_codes.upgrade
objectObjekt mit den Upgrade-Daten.
purchase.pin_codes.upgrade.id_user_history
integerID des Eintrags, der Daten über den Benutzer und seine Pakete enthält.
purchase.pin_codes.upgrade.id
integerUpgrade-ID.
purchase.gift
objectBenutzerdaten (Objekt).
purchase.gift.giver_id
stringSpender-ID.
purchase.gift.message
stringNachricht vom Spender.
purchase.gift.hide_giver_from_receiver
stringLegt fest, ob die Identität des Spenders vor dem Beschenkten geheim gehalten werden soll. Standardwert ist true.
purchase.gift.friends
arrayArray mit Daten über Freunde.
purchase.gift.friends.id
stringID des Geschenkempfängers.
purchase.gift.friends.name
stringE-Mail des Geschenkempfängers.
purchase.gift.friends.email
stringE-Mail des Geschenkempfängers.
purchase.coupon_code
objectInformationen über einen Rabatt- bzw. Promocode oder Prämien beim Kauf (Objekt).
purchase.coupon_code.value
stringPromocode-Wert.
purchase.coupon_code.hidden
booleanBlendet das Feld, in dem der Promocode eingegeben wird, im Zahlungsportal aus. Standardwert ist false.
custom_parameters
objectIhre benutzerdefinierten Parameter, repräsentiert durch eine gültige Reihe von JSON-Objekten bestehend aus Schlüssel-Wert-Paaren.

Falls irgendein Parameter in einem unzulässigen Format oder als falscher Typ gesendet wird, wird kein Token ausgegeben. Als Antwort erhalten Sie den HTTP-Statuscode 422 samt Fehlerbeschreibung im JSON-Body. Der Parameter extended_message gibt Aufschluss darüber, welche Parameter falsch waren.

Copy
Full screen
Small screen
{
    "extended_message": {
        "global_errors": [],
        "property_errors": {
            "settings.project_id": [
                "string value found, but an integer is required"
            ]
        }
    }
}

Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "amount": 1,
          "sku": "SKU01"
        }
      ]
    }
  },
  "settings": {
    "currency": "USD",
    "language": "en",
    "project_id": 16184,
    "ui": {
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      },
      "desktop": {
        "virtual_item_list": {
          "button_with_price": true,
          "layout": "list"
        }
      },
      "size": "medium"
    }
  },
  "user": {
    "country": {
      "allow_modify": true,
      "value": "US"
    },
    "age": 19,
    "email": {
      "value": "john.smith@mail.com"
    },
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    }
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":{"value":"user_2"},"name":{"value":"John Smith"},"age":19,"email":{"value":"john.smith@mail.com"},"country":{"value":"US","allow_modify":true}},"settings":{"project_id":16184,"currency":"USD","language":"en","ui":{"size":"medium","desktop":{"virtual_item_list":{"layout":"list","button_with_price":true}},"components":{"virtual_currency":{"custom_amount":true}}}},"purchase":{"virtual_currency":{"quantity":100},"virtual_items":{"items":[{"sku":"SKU01","amount":1}]}}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v1/merchants/{merchant_id}/token", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":{\"value\":\"user_2\"},\"name\":{\"value\":\"John Smith\"},\"age\":19,\"email\":{\"value\":\"john.smith@mail.com\"},\"country\":{\"value\":\"US\",\"allow_modify\":true}},\"settings\":{\"project_id\":16184,\"currency\":\"USD\",\"language\":\"en\",\"ui\":{\"size\":\"medium\",\"desktop\":{\"virtual_item_list\":{\"layout\":\"list\",\"button_with_price\":true}},\"components\":{\"virtual_currency\":{\"custom_amount\":true}}}},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"virtual_items\":{\"items\":[{\"sku\":\"SKU01\",\"amount\":1}]}}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": {
      "value": "user_2"
    },
    "name": {
      "value": "John Smith"
    },
    "age": 19, 
    "email": {
      "value": "john.smith@mail.com"
    },
    "country": {
      "value": "US",
      "allow_modify": true
    }
  },
  "settings": {
    "project_id": 16184,
    "currency": "USD",
    "language": "en",
    "ui": {
      "size": "medium",
      "desktop": {
        "virtual_item_list": {
          "layout": "list",
          "button_with_price": true
        }
      },
      "components": {
        "virtual_currency": {
          "custom_amount": true
        }
      }
    }
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "virtual_items": {
      "items": [
        {
          "sku": "SKU01",
          "amount": 1
        }
      ]
    }
  }
});

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

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

xhr.open("POST", "https://api.xsolla.com/merchant/v1/merchants/{merchant_id}/token");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
Antwort
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}
{
  "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT"
}

Liste der zusätzlichen Parameter

Sie können zusätzliche Parameter innerhalb des Token im custom_parameters-Objekt übermitteln, um Filter zur Betrugsbekämpfung zu konfigurieren. Die empfohlenen Parameter sind in der nachfolgenden Tabelle aufgeführt. Sie können die Liste beliebig erweitern.

Siehe Anleitung

ParameterTypBeschreibung
registration_date
stringDatum der Kontoerstellung gemäß ISO 8601.
total_hours
integerGesamtzahl der Spielstunden.
total_characters
integerAnzahl der Charaktere im Spiel.
social_networks_added
booleanFiltert danach, ob der Spieler Profile von sozialen Netzwerken verknüpft hat.
profile_image_added
booleanFiltert danach, ob der Spieler ein Profilbild hochgeladen hat.
active_date
stringLetztmalig online; Datum gemäß ISO 8601.
total_friends
integerAnzahl der Freunde.
additional_verification
booleanFiltert danach, ob der Spieler Konto-Verifikationsverfahren verwendet.
win_rate
integerGewinnquote.
last_change_password_date
stringDatum der letzten Kennwortänderung; Datumsangabe gemäß ISO 8601.
chat_activity
booleanFiltert danach, ob der Spieler die Chatfunktion verwendet.
forum_activity
booleanFiltert danach, ob der Spieler die Chatfunktion verwendet.
total_bans
integerFiltert danach, wie oft der Spieler im Chat/Forum gesperrt wurde.
profile_completed
booleanFiltert danach, ob der Spieler auf seinem Profil zusätzliche Informationen hinzugefügt hat.
notifications_enabled
booleanFiltert danach, ob der Spieler den Erhalt von Benachrichtigungen aktiviert hat.
user_level
integerLevel, Ansehen oder Rang des Spielers.
karma_points
integerKarma des Spielers.
total_sum
floatGesamtbetrag der Zahlungen.
non_premium_currency
floatBetrag der gewöhnlichen ("non-premium") Währung.
total_game_events
integerAnzahl der Ingame-Events, an denen der Spieler teilgenommen hat.
total_gifts
integerAnzahl der Geschenke im Spiel, die der Spieler verschickt/erhalten hat.
tutorial_completed
booleanFiltert danach, ob der Spieler das Tutorial des Spiels absolviert hat.
completed_tasks
integerAnzahl der erledigten Aufgaben bzw. erreichten Ziele.
items_used
booleanFiltert danach, ob der Spieler im Spiel gekaufte Gegenstände verwendet.
pvp_activity
booleanFiltert danach, ob der Spieler an PvP-Schlachten teilnimmt.
total_clans
integerAnzahl der Clans, bei denen der Spieler Mitglied ist.
unlocked_achievements
integerAnzahl an freigeschalteten Errungenschaften.
total_inventory_value
floatGesamtwert des Inventars (in Ingame-Währung).
character_customized
booleanFiltert danach, ob der Spieler seinen Charakter individuell angepasst hat.
session_time
stringDurchschnittliche Sitzungsdauer, Angabe gemäß ISO 8601.

Tokenisierung

Mehr über das Einrichten der Tokenisierung für Ihre Anwendung erfahren Sie in der Bezahlstation-Dokumentation.

Gespeicherte Konten abrufen

Listet die gespeicherten Zahlungskonten eines festgelegten Benutzers auf.

HTTP-ANFRAGE

Copy
Full screen
Small screen
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts

ParameterTypBeschreibung
project_id
integerProjekt-ID.
user_id
stringBenutzer-ID.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
GET https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request GET \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts \
  --header 'authorization: Basic <your_authorization_basic_key> '
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts');
$request->setRequestMethod('GET');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key> '
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts");
var request = new RestRequest(Method.GET);
request.AddHeader("authorization", "Basic <your_authorization_basic_key> ");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key> " }

conn.request("GET", "/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Get.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key> '

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts")
  .get()
  .addHeader("authorization", "Basic <your_authorization_basic_key> ")
  .build();

Response response = client.newCall(request).execute();
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://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key> ");

xhr.send(data);
Antwort
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]
[
  {
    "id": 4612345,
    "name": "PP_saved_account",
    "payment_system": {
      "id": 24,
      "name": "PayPal"
    },
    "type": "paypal"
  }
]

Von gespeichertem Konto abbuchen

Von einem gespeicherten Zahlungskonto des Benutzers abbuchen.

Notice: Diese API-Methode lässt sich unter hoher Last nicht verwenden. Bei einer hohen Anzahl von Anfragen können Ratenbegrenzungen greifen. Erkundigen Sie sich bei Ihrem Account Manager nach den Ratenbegrenzungen für diese API-Methode.

HTTP-ANFRAGE

Copy
Full screen
Small screen
POST https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

ParameterTypBeschreibung
project_id
integerProjekt-ID. Erforderlich.
user_id
stringBenutzer-ID. Erforderlich.
type
stringZahlungskontotyp. Erforderlich. Mögliche Werte: card — Bankkarten, amazon — Amazon Pay, skrill — Skrill Digital Wallet, yandex — Yandex.Money, paymasterwebmoney — WebMoney, paypal — PayPal, qiwi — QIWI Wallet.

Bei einem HTTP-Statuscodes 200 erhält man als Antwort auf die Anfrage eine Transaktions-ID und deren Status. Mögliche Status:
  • processing — Transaktion im Gange
  • done — Transaktion erfolgreich abgewickelt
  • error — Beim Abwickeln der Transaktion ist ein Fehler aufgetreten
  • canceled — Transaktion wurde abgebrochen
  • held — Mittel im Konto des Benutzers liegen auf Eis
Bei einem HTTP-Statuscodes 402 erhält man als Antwort auf die Anfrage einen Fehlercode samt ausführlicher Beschreibung.
account_id
integerID des gespeicherten Kontos in der Xsolla-Datenbank. Erforderlich.
user
objectBenutzerdaten (Objekt).
user.ip
stringIP-Adresse des Benutzers. Erforderlich.
user.name
stringBenutzername.
objectObjekt mit Angaben zur juristischen Person.
stringVollständiger Name des Unternehmens.
stringVollständige Unternehmensanschrift.
stringSteuerliche Identifikationsnummer.
stringLand des Unternehmenssitzes. Ländercode, bestehend aus 2 Großbuchstaben gemäß ISO 3166-1 ALPHA-2.
purchase
objectObjekt, welches Angaben zum Kauf enthält.
purchase.virtual_currency
objectObjekt, welches Angaben zur virtuellen Währung enthält.
purchase.virtual_currency.quantity
floatKaufbetrag in der virtuellen Währung.
purchase.checkout
objectObjekt, welches Angaben zur Bezahlung enthält.
purchase.checkout.currency
stringKaufwährung. Währungscode, bestehend aus drei Buchstaben gemäß ISO 4217.
purchase.checkout.amount
floatKaufbetrag.
settings
objectObjekt, welches die Einstellungen für den Kauf enthält.
settings.mode
stringLegen Sie als Wert sandbox fest, um den Zahlungsvorgang auszutesten. Entfernen Sie den Parameter für tatsächliche Zahlungen.
custom_parameters
stringIhre benutzerdefinierten Parameter, repräsentiert durch eine gültige Reihe von JSON-Objekten bestehend aus Schlüssel-Wert-Paaren.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
Content-Type: application/json

Body:
  {
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "description": {
      "value": "currency purchase"
    },
    "virtual_currency": {
      "quantity": 100
    }
  },
  "settings": {
    "currency": "USD",
    "external_id": "ext123",
    "save": true
  },
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>' \
  --header 'content-type: application/json' \
  --data '{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$body = new http\Message\Body;
$body->append('{"user":{"id":"user123","ip":"111.11.11.11","name":"John Smith","legal":{"name":"My Awesome Company","address":"17 Crown Street London SW2 0JW United Kingdom","vat_id":"GB111111111","country":" GB"}},"card":{"cvn":"123"},"purchase":{"virtual_currency":{"quantity":100},"description":{"value":"currency purchase"}},"settings":{"save":true,"currency":"USD","external_id":"ext123"}}');

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}');
$request->setRequestMethod('POST');
$request->setBody($body);

$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>',
  'content-type' => 'application/json'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
var request = new RestRequest(Method.POST);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
request.AddHeader("content-type", "application/json");
request.AddParameter("application/json", "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

payload = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

headers = {
    'content-type': "application/json",
    'authorization': "Basic <your_authorization_basic_key>"
    }

conn.request("POST", "/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}", payload, headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Post.new(url)
request["content-type"] = 'application/json'
request["authorization"] = 'Basic <your_authorization_basic_key>'
request.body = "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}"

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"user\":{\"id\":\"user123\",\"ip\":\"111.11.11.11\",\"name\":\"John Smith\",\"legal\":{\"name\":\"My Awesome Company\",\"address\":\"17 Crown Street London SW2 0JW United Kingdom\",\"vat_id\":\"GB111111111\",\"country\":\"GB\"}},\"card\":{\"cvn\":\"123\"},\"purchase\":{\"virtual_currency\":{\"quantity\":100},\"description\":{\"value\":\"currency purchase\"}},\"settings\":{\"save\":true,\"currency\":\"USD\",\"external_id\":\"ext123\"}}");
Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}")
  .post(body)
  .addHeader("content-type", "application/json")
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
var data = JSON.stringify({
  "user": {
    "id": "user123",
    "ip": "111.11.11.11",
    "name": "John Smith",
    "legal" : {
      "name": "My Awesome Company",
      "address": "17 Crown Street London SW2 0JW United Kingdom",
      "vat_id": "GB111111111",
      "country": "GB"
    },
  },
  "card": {
    "cvn": "123"
  },
  "purchase": {
    "virtual_currency": {
      "quantity": 100
    },
    "description": {
      "value": "currency purchase"
    }
  },
  "settings": {
    "save": true,
    "currency": "USD",
    "external_id": "ext123"
  }
});

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

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

xhr.open("POST", "https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payments/{type}/{account_id}");
xhr.setRequestHeader("content-type", "application/json");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
Antwort
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}

Gespeichertes Zahlungskonto löschen

Löscht ein gespeichertes Zahlungskonto.

HTTP-ANFRAGE

Copy
Full screen
Small screen
DELETE https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

ParameterTypBeschreibung
project_id
integerProjekt-ID.
user_id
stringBenutzer-ID.
type
stringZahlungskontotyp. Mögliche Werte: card — Bankkarten, amazon — Amazon Pay, skrill — Skrill Digital Wallet, yandex — Yandex.Money, paymasterwebmoney — WebMoney, paypal — PayPal, qiwi — QIWI Wallet.

Bei einem HTTP-Statuscodes 200 erhält man als Antwort auf die Anfrage eine Transaktions-ID und deren Status. Mögliche Status:
  • processing — Transaktion im Gange
  • done — Transaktion erfolgreich abgewickelt
  • error — Beim Abwickeln der Transaktion ist ein Fehler aufgetreten
  • canceled — Transaktion wurde abgebrochen
  • held — Mittel im Konto des Benutzers liegen auf Eis
Bei einem HTTP-Statuscodes 402 erhält man als Antwort auf die Anfrage einen Fehlercode samt ausführlicher Beschreibung.
account_id
integerID des gespeicherten Kontos in der Xsolla-Datenbank.
Copy
Full screen
Small screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
DELETE https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request DELETE \
  --url https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id} \
  --header 'authorization: Basic <your_authorization_basic_key>'
<?php

$client = new http\Client;
$request = new http\Client\Request;

$request->setRequestUrl('https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}');
$request->setRequestMethod('DELETE');
$request->setHeaders(array(
  'authorization' => 'Basic <your_authorization_basic_key>'
));

$client->enqueue($request)->send();
$response = $client->getResponse();

echo $response->getBody();
var client = new RestClient("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
var request = new RestRequest(Method.DELETE);
request.AddHeader("authorization", "Basic <your_authorization_basic_key>");
IRestResponse response = client.Execute(request);
import http.client

conn = http.client.HTTPSConnection("api.xsolla.com")

headers = { 'authorization': "Basic <your_authorization_basic_key>" }

conn.request("DELETE", "/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}", headers=headers)

res = conn.getresponse()
data = res.read()

print(data.decode("utf-8"))
require 'uri'
require 'net/http'

url = URI("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
http.verify_mode = OpenSSL::SSL::VERIFY_NONE

request = Net::HTTP::Delete.new(url)
request["authorization"] = 'Basic <your_authorization_basic_key>'

response = http.request(request)
puts response.read_body
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}")
  .delete(null)
  .addHeader("authorization", "Basic <your_authorization_basic_key>")
  .build();

Response response = client.newCall(request).execute();
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("DELETE", "https://api.xsolla.com/merchant/v1/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
Antwort


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.