Bezahlstation-API v2.0

Überblick

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

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

Zahlungsportal

Bezahlstation öffnen

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 folgende Script aus unserem CDN herunterzuladen: link. Verwenden Sie diese URL, um das Script auf Ihrer Website zu integrieren. Für weitere Informationen besuchen Sie bitte unser GitHub repository.

Script-Initialisierungsparameter:

Parameter Typ Beschreibung
access_token
string Token; wird über die API empfangen. Erforderlich.
sandbox
boolean Stellen Sie den Wert des Parameters auf 'true', um den Zahlungsvorgang auszutesten: Anstelle von sandbox-secure.xsolla.com wird secure.xsolla.com verwendet.
lightbox
object Lightbox-Parameter (Objekt; nur für die Desktop-Version).
lightbox.width
string Rahmenbreite der Lightbox. Falls als Wert null festgelegt ist, wird die Breite der Bezahlstation verwendet. Standardwert ist null.
lightbox.height
string Rahmenhöhe der Lightbox. Falls als Wert null festgelegt ist, wird die Höhe der Bezahlstation verwendet. Standardwert ist '100%'.
lightbox.zIndex
integer Definiert die Stapelanordnung. Standardwert ist 1000.
lightbox.overlayOpacity
integer Deckkraft der Einblendung (0 bis 1). Standardwert ist '.6'.
lightbox.overlayBackground
string Hintergrundfarbe der Einblendung. Standardmäßig is '#000000'.
lightbox.modal
boolean Falls 'true' eingestellt ist, kann der Lightbox-Rahmen nicht geschlossen werden. Standardwert ist 'false'.
lightbox.closeByClick
boolean Falls 'true' eingestellt ist, wird die Lightbox durch Klicken auf die Einblendung geschlossen. Standardwert ist 'true'.
lightbox.closeByKeyboard
boolean Falls 'true' eingestellt ist, wird die Lightbox durch Drücken der Escape-Taste geschlossen. Standardwert ist 'true'.
lightbox.contentBackground
string Hintergrundfarbe des Rahmens. Standardmäßig is '#ffffff'.
lightbox.contentMargin
string Breite des Rahmens. Standardwert ist '10px'.
lightbox.spinner
string Art der animierten Ladeanzeige. Als Wert lässt sich entweder 'xsolla' oder 'round' festlegen. Standardwert ist 'xsolla'.
lightbox.spinnerColor
string Farbe des Ladekreises. Kein Wert voreingestellt.
childWindow
object Optionen für das untergeordnete Fenster, welches die Benutzeroberfläche der Bezahlstation enthält. Wird in der mobilen Version unterstützt.
childWindow.target
string Stelle, an welcher das Bezahlstation-Fenster geöffnet werden soll. Als Wert lässt sich entweder "_blank", "_self", "_parent" festlegen. Standardmäßig ist "_blank" eingestellt.

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:

Parameter Beschreibung
init Widget initialisiert.
open Widget geöffnet.
load Zahlungsportal (Bezahlstation) geladen.
close Zahlungsportal (Bezahlstation) geschlossen.
status Benutzer befindet sich auf der Statusseite.
status-invoice Benutzer befindet sich auf der Statusseite; Zahlung im Gange.
status-delivering Benutzer befindet sich auf der Statusseite; Zahlung abgeschlossen; Zahlungsbestätigung wurde versendet.
status-done Benutzer befindet sich auf der Statusseite, Zahlung wurde dem Benutzerkonto gutgeschrieben.
status-troubled Benutzer 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/paystation2/?access_token=ACCESS_TOKEN.

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

Notice: Parameter access_token enthält personenbezogene Nutzerdaten. Bitte stellen Sie sicher, dass Sie Server-zu-Server-Kommunikation einsetzen, wenn Sie diesen Parameter abrufen.
Copy
Full screen
php
  • php
  • html
Asynchrones Laden von Scripten mit einer Rückruffunktion
<html>
<head lang="en">
    <meta charset="UTF-8">
</head>
<body>
    <button data-xpaystation-widget-open>Buy Credits</button>

    <?php \Xsolla\SDK\API\PaymentUI\PaymentUIScriptRenderer::send($paymentUIToken, $isSandbox = true); ?>
</body>
</html>
<script>
    var options = {
        access_token: 'abcdef1234567890abcdef1234567890'
    };
    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>

Zahlungsportal-Ereignisse

Zahlungsportal-Ereignisse werden über einen postMessage-Vorgang beim Öffnen der Bezahlstation in einem iframe oder mittels Pay Station Embed verarbeitet.

Ereignis Beschreibung
show-error-page Fehleranzeige. Die Fehlermeldung wird in 'value' übermittelt.
open-{state_name} Öffnen einer Seite im Zahlungsportal.
create-invoice Erstellen einer Rechnung seitens Xsolla.
close-widget Schließen des Zahlungsportals.
click-email-submit Senden einer E-Mail von der Statusseite aus.
click-custom-package-continue Klick auf die Schaltfläche Weiter zum Kauf einer beliebigen Menge virtueller Währung.
click-comment Klick auf die Schaltfläche zum Veröffentlichen eines Beitrags.
click-buy-package Klick auf die Schaltfläche Paket kaufen zum Kauf eines virtuellen Währungspakets.
click-buy-gift-package Klick auf die Schaltfläche zum Kauf eines virtuellen Währungspakets als Geschenk.
click-buy-gift-custom-package Klick auf die Schaltfläche zum Kauf einer beliebigen Menge virtueller Währung als Geschenk.
click-btn-share Klick auf die Schaltfläche zum Teilen in sozialen Netzwerken. Der Name des sozialen Netzwerks wird in 'value' übermittelt.
click-btn-pay Klick auf die Schaltfläche Jetzt bezahlen im Rechnungsformular.
click-btn-continue Klick auf die Schaltfläche zum Abschluss eines kostenpflichtigen Abonnements.
click-btn-apply Klick auf die Schaltfläche Anwenden zum Einlösen eines Gutscheins.
click-btn-activate Klick auf die Schaltfläche Aktivieren zum Aktivieren eines Spielschlüssels.
click-btn-accept Klick auf die Schaltfläche zum Kauf digitaler Inhalte.
choose-payment-widget Klick auf das Zahlungsverfahren-Widget. Der Widget-Name wird in 'value' übermittelt.
choose-method Auswahl des Zahlungsverfahrens. Der Name des Zahlungsverfahrens wird in 'value' übermittelt.
change-status Ändern des Zahlungsstatus. Wenn der Benutzer das Zahlungsportal schließt oder die Seite verlässt und sich anschließend der Status ändert, wird die Ereignismeldung nicht gesendet.

Die Ereignisparameter werden in jeder Meldung von postMessage übergeben. Wenn die Parameterinformationen noch nicht erfasst wurden, erscheint ein leerer String.

Parameter Typ Beschreibung
action string Ereignisname.
value string Weitere Parameter. Enthält spezifische Ereignisparameter, die je nach Wahl des Benutzers variieren.
state string Die Zahlungsportal-Seite, auf welcher die Aktion ausgeführt wurde.
date string Datum und Uhrzeit im GMT-Format.
milliseconds number Datum und Uhrzeit im Unixzeit-Format.
timezone string Zeitzone des Benutzers.
session_id string Sitzungs-ID. Die Sitzung umfasst alle Benutzeraktionen, die innerhalb von 30 Minuten oder bis zum Schließen des Zahlungsportals durchgeführt werden. Die Sitzung beginnt mit dem Aufrufen des Zahlungsportal und wird immer dann gespeichert, wenn die Zahlungsportal-Seite aktualisiert wurde.
payment_country string Zahlungsland.
purchase_invoice_id number Rechnungsnummer im Xsolla-System.
purchase_external_id string Rechnungsnummer im System des Partners.
purchase_type string Art des Einkaufs. Möglich sind: 'virtual item', 'virtual currency', 'pay2play', 'subscription'.
purchase_sum number Nominaler Kaufbetrag.
purchase_currency string Kaufwährung.
purchase_sku string SKU des erworbenen Gegenstands.
purchase_digital_content_sku string SKU des erworbenen Spielschlüsselpakets.
purchase_description string Kaufbeschreibung.
virtual_currency_amount number Betrag in virtueller Währung.
coupon_code string Gutscheincode.
subscription_package_external_id number Abonnement-ID.
subscription_package_name string Abonnement-Name.
subscription_package_description string Abonnement-Beschreibung.
total_sum number Gesamtkaufpreis. Inklusive aller Gebühren.
total_sum_currency string Währung des Gesamtkaufpreises.
user_id string Benutzer-ID (v1).
user_country string Land des Benutzers.
payment_instance_name string Name des Zahlungsverfahrens.

Ereignisse sind mit den Seiten verknüpft, auf denen der Benutzer alle Aktionen beim Kauf eines Gegenstands ausführt.

Zustand Beschreibung
cart Seite mit dem ausgewählten, gegen virtuelle Währung erworbenen Gegenstand und einer Kaufbestätigung.
coupon Gutschein-Eingabeformular.
giftcard Seite mit Geschenkkarten-Liste (Widget Geschenkkarten).
giftrecipient Seite zum Kauf von Geschenken.
history Seite mit der Kaufhistorie.
index Service-Seite, auf die der Benutzer nach dem Öffnen der Anwendung weitergeleitet wird. Wird dem Benutzer nicht angezeigt.
legal Mobile Version der Seite mit Links zu rechtlichen Dokumenten.
list Liste der Zahlungsverfahren.
paybycash Seite mit der Liste der Zahlungsverfahren für den Kauf an Automaten (Widget Bargeldzahlung).
payment Zahlungsformular.
paymentaccount Seite mit den gespeicherten Zahlungskonten.
paymentreturn Service-Seite, auf die der Benutzer nach erfolgter Zahlung umgeleitet wird und von der aus der Benutzer auf die Statusseite weitergeleitet wird. Wird dem Benutzer nicht angezeigt.
pincart Seite mit der Liste der Plattformen für digitale Inhalte.
pricepoint Online-Shop für virtuelle Währung.
savedmethod Liste der gespeichterten Zahlungsverfahren.
shippingaddress Lieferanschrift-Formular.
status Statusseite.
subscription Online-Shop für Abo-Modelle.
subscriptionchange Änderung von Abo-Modellen.
useraccount Seite mit Konto-Informationen (Benutzername, Guthaben) samt Option Bestätigungsfenster beim zukünftigen Kauf von Gegengenständen deaktivieren.
userinventory Benutzer-Inventar.
usermenu Mobile Version der Benutzermenü-Seite.
usersubscription Verwaltung von Benutzerabonnements.
usersubscriptioninfo Seite mit Abonnement-Angaben.
virtualitem Online-Shop für virtuelle Gegenstände.


Um die Ereignisse an Ihre Google Analytics und Facebook Analytics Konten zu übermitteln, müssen Sie diese Analyseplattformen integrieren.

Liste der Testkarten

Sie können folgende Karten In der Testumgebung (Sandbox-Modus) verwenden, um erfolgreiche Zahlungen zu simulieren:

Karte 3-D Secure
Kartennummer: 4111111111111111
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
Nein
Kartennummer: 5555555555554444
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
Nein
Kartennummer: 4000000000000010
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
Ja
Kartennummer: 5200000000000114
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
Ja
Kartennummer: 6759649826438453
Gültig bis: 12/40
CVV2: 321
Kartentyp: Maestro
Ja

Zusätzlich können Sie folgende Daten verwenden, um abgelehnte Transaktionen zu simulieren:

Karte 3-D Secure Beschreibung
Kartennummer: 4000000000000002
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
Nein Unzureichende Mittel
Kartennummer: 5200000000000007
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
Nein Unzureichende Mittel
Kartennummer: 4000000000000036
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
Ja Abgelehnt
Kartennummer: 5200000000000031
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
Ja Abgelehnt

Liste der Fehler

Code Beschreibung
0004-0001 Token abgelaufen oder falsch.
0004-0008 Falsche URL (Zugriff auf die Testumgebung unter secure.xsolla.com oder auf den Live-Modus unter sandbox-secure.xsolla.com).
0002-0004 Vereinbarung wurde nicht unterzeichnet.
0004-0010 Tokenlose Integration ist untersagt.
0010-0001 Pakete wurde nicht gefunden.
0010-0003 Für die Pakete ist kein DRM konfiguriert.
1000-0003 Für das Projekt sind keine Module eingeschaltet.
0004-0003 Projekt-ID nicht übermittelt.
0004-0009 Ungültiges JSON von access_data.
0003-0001 Die Zahlungsabwicklung ist für das gewählte Land untersagt.
1000-0002 Netzwerkfehler. Die API-Antwort wurde während der Initialisierung nicht empfangen.
0007-0009 Das Abo-Modell kann mittels Token nicht geändert werden. Die Währung eines neuen Abo-Modells unterscheidet sich von der Währung, die für das bestehende Modell festgelegt wurde.
0004-0002 Die digitale Signatur ist fehlerhaft.
0005-0001 Fehler beim Abrufen von Benutzerdaten aus der Abrechnung.
1000-0004 Keine Daten für die Statusseite empfangen.
1000-0001 Netzwerkfehler. Die API antwortet nicht.
1004-0001 Die Änderung des Abo-Modells ist unzulässig.
0002-0002 Projekt nicht vorhanden.

Tokenisierung

Gespeicherte Konten abrufen

Listet die gespeicherten Zahlungskonten eines festgelegten Benutzers auf.

HTTP-ANFRAGE

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

Parameter Typ Beschreibung
project_id
integer Projekt-ID.
user_id
integer Benutzer-ID.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
GET https://api.xsolla.com/merchant/v2/projects/{project_id}/users/{user_id}/payment_accounts

Headers:
  Authorization: Basic <your_authorization_basic_key>
curl --request GET \
  --url https://api.xsolla.com/merchant/v2/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/v2/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/v2/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/v2/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/v2/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/v2/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/v2/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.

HTTP-ANFRAGE

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

Parameter Typ Beschreibung
project_id
integer Projekt-ID. Erforderlich.
user_id
integer Benutzer-ID. Erforderlich.
type
string Karte / PayPal. Erforderlich.
account_id
integer ID des gespeicherten Kontos in der Xsolla-Datenbank. Erforderlich.
user
object Benutzerdaten (Objekt).
user.ip
string IP-Adresse des Benutzers. Erforderlich.
user.name
string Benutzername.
purchase
object Objekt, welches Angaben zum Kauf enthält.
purchase.virtual_currency
object Objekt, welches Angaben zur virtuellen Währung enthält.
purchase.virtual_currency.quantity
float Kaufbetrag in der virtuellen Währung.
purchase.checkout
object Objekt, welches Angaben zur Bezahlung enthält.
purchase.checkout.currency
string Kaufwährung. Währungscode, bestehend aus drei Buchstaben gemäß ISO 4217.
purchase.checkout.amount
float Kaufbetrag.
settings
object Objekt, welches die Einstellungen für den Kauf enthält.
settings.mode
string Legen Sie als Wert "sandbox" fest, um den Zahlungsvorgang auszutesten. Entfernen Sie den Parameter für tatsächliche Zahlungen.
custom_parameters
string Ihre benutzerdefinierten Parameter, repräsentiert durch eine gültige Reihe von JSON-Objekten bestehend aus Schlüssel-Wert-Paaren.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
POST https://api.xsolla.com/merchant/v2/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",
    "name": "John Smith"
  }
}
curl --request POST \
  --url https://api.xsolla.com/merchant/v2/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","name":"John Smith"},"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","name":"John Smith"},"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/v2/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/v2/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\",\"name\":\"John Smith\"},\"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\",\"name\":\"John Smith\"},\"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/v2/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/v2/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\",\"name\":\"John Smith\"},\"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\",\"name\":\"John Smith\"},\"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/v2/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",
    "name": "John Smith"
  },
  "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/v2/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

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

Parameter Typ Beschreibung
project_id
integer Projekt-ID.
user_id
integer Benutzer-ID.
type
string Karte / PayPal.
account_id
integer ID des gespeicherten Kontos in der Xsolla-Datenbank.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Anfrage
DELETE https://api.xsolla.com/merchant/v2/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/v2/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/v2/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/v2/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/v2/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/v2/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/v2/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/v2/projects/{project_id}/users/{user_id}/payment_accounts/{type}/{account_id}");
xhr.setRequestHeader("authorization", "Basic <your_authorization_basic_key>");

xhr.send(data);
Antwort