Bezahlstation-API v2.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.

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:

ParameterTypBeschreibung
access_token
stringToken; wird über die API empfangen. Erforderlich.
sandbox
booleanStellen Sie den Wert des Parameters auf 'true', um den Zahlungsvorgang auszutesten: Anstelle von sandbox-secure.xsolla.com wird 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. Standardmäßig is '#000000'.
lightbox.modal
booleanFalls 'true' eingestellt ist, kann der Lightbox-Rahmen nicht geschlossen werden. Standardwert ist 'false'.
lightbox.closeByClick
booleanFalls 'true' eingestellt ist, wird die Lightbox durch Klicken auf die Einblendung geschlossen. Standardwert ist 'true'.
lightbox.closeByKeyboard
booleanFalls 'true' eingestellt ist, wird die Lightbox durch Drücken der Escape-Taste geschlossen. Standardwert ist 'true'.
lightbox.contentBackground
stringHintergrundfarbe des Rahmens. Standardmäßig is '#ffffff'. Beachten Sie, dass diese Farbänderungen keinen Einfluss auf den iframe der Bezahlstation selbst haben, sondern nur auf die Einstellungen des 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. 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:

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/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.

EreignisBeschreibung
show-error-pageFehleranzeige. Die Fehlermeldung wird in 'value' übermittelt.
open-{state_name}Öffnen einer Seite im Zahlungsportal.
create-invoiceErstellen einer Rechnung seitens Xsolla.
close-widgetSchließen des Zahlungsportals.
click-email-submitSenden einer E-Mail von der Statusseite aus.
click-custom-package-continueKlick auf die Schaltfläche Weiter zum Kauf einer beliebigen Menge virtueller Währung.
click-commentKlick auf die Schaltfläche zum Veröffentlichen eines Beitrags.
click-buy-packageKlick auf die Schaltfläche Paket kaufen zum Kauf eines virtuellen Währungspakets.
click-buy-gift-packageKlick auf die Schaltfläche zum Kauf eines virtuellen Währungspakets als Geschenk.
click-buy-gift-custom-packageKlick auf die Schaltfläche zum Kauf einer beliebigen Menge virtueller Währung als Geschenk.
click-btn-shareKlick auf die Schaltfläche zum Teilen in sozialen Netzwerken. Der Name des sozialen Netzwerks wird in 'value' übermittelt.
click-btn-payKlick auf die Schaltfläche Jetzt bezahlen im Rechnungsformular.
click-btn-continueKlick auf die Schaltfläche zum Abschluss eines kostenpflichtigen Abonnements.
click-btn-applyKlick auf die Schaltfläche Anwenden zum Einlösen eines Gutscheins.
click-btn-activateKlick auf die Schaltfläche Aktivieren zum Aktivieren eines Spielschlüssels.
click-btn-acceptKlick auf die Schaltfläche zum Kauf digitaler Inhalte.
choose-payment-widgetKlick auf das Zahlungsverfahren-Widget. Der Widget-Name wird in 'value' übermittelt.
choose-methodAuswahl 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.

ParameterTypBeschreibung
actionstringEreignisname.
valuestringWeitere Parameter. Enthält spezifische Ereignisparameter, die je nach Wahl des Benutzers variieren.
statestringDie Zahlungsportal-Seite, auf welcher die Aktion ausgeführt wurde.
datestringDatum und Uhrzeit im GMT-Format.
millisecondsnumberDatum und Uhrzeit im Unixzeit-Format.
timezonestringZeitzone des Benutzers.
session_idstringSitzungs-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_countrystringZahlungsland.
purchase_invoice_idnumberRechnungsnummer im Xsolla-System.
purchase_external_idstringRechnungsnummer im System des Partners.
purchase_typestringArt des Einkaufs. Möglich sind: 'virtual item', 'virtual currency', 'pay2play', 'subscription'.
purchase_sumnumberNominaler Kaufbetrag.
purchase_currencystringKaufwährung.
purchase_skustringSKU des erworbenen Gegenstands.
purchase_digital_content_skustringSKU des erworbenen Spielschlüsselpakets.
purchase_descriptionstringKaufbeschreibung.
virtual_currency_amountnumberBetrag in virtueller Währung.
coupon_codestringGutscheincode.
subscription_package_external_idnumberAbonnement-ID.
subscription_package_namestringAbonnement-Name.
subscription_package_descriptionstringAbonnement-Beschreibung.
total_sumnumberGesamtkaufpreis. Inklusive aller Gebühren.
total_sum_currencystringWährung des Gesamtkaufpreises.
user_idstringBenutzer-ID (v1).
user_countrystringLand des Benutzers.
payment_instance_namestringName des Zahlungsverfahrens.

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

ZustandBeschreibung
cartSeite mit dem ausgewählten, gegen virtuelle Währung erworbenen Gegenstand und einer Kaufbestätigung.
couponGutschein-Eingabeformular.
giftcardSeite mit Geschenkkarten-Liste (Widget Geschenkkarten).
giftrecipientSeite zum Kauf von Geschenken.
historySeite mit der Kaufhistorie.
indexService-Seite, auf die der Benutzer nach dem Öffnen der Anwendung weitergeleitet wird. Wird dem Benutzer nicht angezeigt.
legalMobile Version der Seite mit Links zu rechtlichen Dokumenten.
listListe der Zahlungsverfahren.
paybycashSeite mit der Liste der Zahlungsverfahren für den Kauf an Automaten (Widget Bargeldzahlung).
paymentZahlungsformular.
paymentaccountSeite mit den gespeicherten Zahlungskonten.
paymentreturnService-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.
pincartSeite mit der Liste der Plattformen für digitale Inhalte.
pricepointOnline-Shop für virtuelle Währung.
savedmethodListe der gespeichterten Zahlungsverfahren.
shippingaddressLieferanschrift-Formular.
statusStatusseite.
subscriptionOnline-Shop für Abo-Modelle.
subscriptionchangeÄnderung von Abo-Modellen.
useraccountSeite mit Konto-Informationen (Benutzername, Guthaben) samt Option Bestätigungsfenster beim zukünftigen Kauf von Gegengenständen deaktivieren.
userinventoryBenutzer-Inventar.
usermenuMobile Version der Benutzermenü-Seite.
usersubscriptionVerwaltung von Benutzerabonnements.
usersubscriptioninfoSeite mit Abonnement-Angaben.
virtualitemOnline-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:

Karte3-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:

Karte3-D SecureBeschreibung
Kartennummer: 4000000000000002
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
NeinUnzureichende Mittel
Kartennummer: 5200000000000007
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
NeinUnzureichende Mittel
Kartennummer: 4000000000000036
Gültig bis: 12/40
CVV2: 123
Kartentyp: VISA
JaAbgelehnt
Kartennummer: 5200000000000031
Gültig bis: 11/40
CVV2: 321
Kartentyp: MasterCard
JaAbgelehnt

Liste der Fehler

CodeBeschreibung
0004-0001Token abgelaufen oder falsch.
0004-0008Falsche URL (Zugriff auf die Testumgebung unter secure.xsolla.com oder auf den Live-Modus unter sandbox-secure.xsolla.com).
0002-0004Vereinbarung wurde nicht unterzeichnet.
0004-0010Tokenlose Integration ist untersagt.
0010-0001Pakete wurde nicht gefunden.
0010-0003Für die Pakete ist kein DRM konfiguriert.
1000-0003Für das Projekt sind keine Module eingeschaltet.
0004-0003Projekt-ID nicht übermittelt.
0004-0009Ungültiges JSON von access_data.
0003-0001Die Zahlungsabwicklung ist für das gewählte Land untersagt.
1000-0002Netzwerkfehler. Die API-Antwort wurde während der Initialisierung nicht empfangen.
0007-0009Das 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-0002Die digitale Signatur ist fehlerhaft.
0005-0001Fehler beim Abrufen von Benutzerdaten aus der Abrechnung.
1000-0004Keine Daten für die Statusseite empfangen.
1000-0001Netzwerkfehler. Die API antwortet nicht.
1004-0001Die Änderung des Abo-Modells ist unzulässig.
0002-0002Projekt 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

ParameterTypBeschreibung
project_id
integerProjekt-ID.
user_id
integerBenutzer-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}

ParameterTypBeschreibung
project_id
integerProjekt-ID. Erforderlich.
user_id
integerBenutzer-ID. Erforderlich.
type
stringKarte / PayPal. Erforderlich.
account_id
integerID des gespeicherten Kontos in der Xsolla-Datenbank. Erforderlich.
user
objectBenutzerdaten (Objekt).
user.ip
stringIP-Adresse des Benutzers. Erforderlich.
user.name
stringBenutzername.
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
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}

ParameterTypBeschreibung
project_id
integerProjekt-ID.
user_id
integerBenutzer-ID.
type
stringKarte / PayPal.
account_id
integerID 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