Pay Station API v2.0

Введение

Раздел содержит описание методов для работы с продуктом Платежи. Для обращения к методам используется базовая аутентификация. Для открытия платежного интерфейса и обеспечения безопасности проведения платежей необходимо получить токен.

Базовый URL: https://api.xsolla.com.

Платежный интерфейс

Открытие платежного интерфейса

Команда Иксоллы создала виджет для упрощения интеграции платежного интерфейса на вашем сайте. Скрипт виджета доступен по ссылке. Используйте этот URL для загрузки скрипта на вашу страницу. Более подробная информация доступна в нашем проекте на Github.

Список параметров для инициализации виджета:

ПараметрТипОписание
access_token
stringТокен, полученный по API. Обязательный.
sandbox
booleanПередайте true для тестирования. Будет использоваться URL sandbox-secure.xsolla.com вместо secure.xsolla.com.
lightbox
objectОбъект со списком настроек, доступных в случае открытия в lightbox (для полноэкранной версии).
lightbox.width
stringШирина lightbox. При значении null соответствует ширине платежного интерфейса. Значение по умолчанию null.
lightbox.height
stringВысота lightbox. Значение по умолчанию '100%'. Если значение null, высота lightbox соответствует высоте платежного интерфейса.
lightbox.zIndex
integerСвойство, отвечающее за положение объекта, по умолчанию 1000.
lightbox.overlayOpacity
integerНепрозрачность верхнего слоя (от 0 до 1), по умолчанию '.6'.
lightbox.overlayBackground
stringФон для верхнего слоя, по умолчанию '#000000'.
lightbox.modal
booleanМожно ли закрыть lightbox, по умолчанию 'false'.
lightbox.closeByClick
booleanДолжен ли закрываться lightbox при клике на верхний слой, по умолчанию 'true'.
lightbox.closeByKeyboard
booleanДолжен ли закрываться lightbox при нажатии ESC, по умолчанию 'true'.
lightbox.contentBackground
stringФон фрейма, по умолчанию '#ffffff'. Обратите внимание, что настройка влияет только на фон фрейма lightbox и не меняет фон окна платежного интерфейса.
lightbox.contentMargin
stringОтступ вокруг фрейма, по умолчанию '10px'.
lightbox.spinner
stringТип прелоадера, может принимать значение 'xsolla' или 'round', по умолчанию 'xsolla'.
lightbox.spinnerColor
stringЦвет прелоадера.
childWindow
objectНастройки дочернего окна, в котором открывается платежный интерфейс. Работает для мобильной версии.
childWindow.target
stringСвойство, определяющее, где должно быть открыто дочернее окно, может принимать значения '_blank', '_self', '_parent', по умолчанию '_blank'.

Скрипт позволяет вам отслеживать события, происходящие в платежном интерфейсе. В зависимости от типа события вы можете выполнять различные действия на вашей странице.

Список событий:

ПараметрОписание
initИнициализация виджета.
openОткрытие виджета.
loadСобытие после загрузки платежного интерфейса.
closeСобытие после закрытия платежного интерфейса.
statusСобытие, когда пользователь попадает на страницу статуса.
status-invoiceСобытие, когда пользователь попадает на страницу статуса, но платеж еще не завершен.
status-deliveringСобытие, когда пользователь попадает на страницу статуса, платеж завершен, мы прислали оповещение о платеже.
status-doneСобытие, когда пользователь попадает на страницу статуса, платеж успешно зачислен.
status-troubledСобытие, когда пользователь попадает на страницу статуса, но платеж не прошел.

Если вы хотите самостоятельно открывать платежный интерфейс, используйте ссылку https://secure.xsolla.com/paystation2/?access_token=ACCESS_TOKEN.

Note: Для открытия платежного интерфейса необходимо использовать ссылку с префиксом https://.

Для тестирования используйте URL https://sandbox-secure.xsolla.com/paystation2/?access_token=ACCESS_TOKEN.

Notice: Параметр access_token содержит приватную информацию о пользователе. Пожалуйста, убедитесь, что вы получаете этот параметр только при server-server взаимодействии.
Copy
Full screen
php
  • php
  • html
Асинхронная загрузка скрипта с callback
<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>

События платежного интерфейса

События платежного интерфейса обрабатываются с помощью механизма postMessage, если платежный интерфейс открывается в iframe или с помощью скрипта Pay Station Embed.

СобытиеОписание
show-error-pageВывод ошибки. В 'value' передается текст ошибки.
open-{state_name}Открытие страницы платежного интерфейса.
create-invoiceСоздание заявки на оплату на стороне Иксоллы.
close-widgetЗакрытие платежного интерфейса.
click-email-submitОтправка email со страницы статуса.
click-custom-package-continueНажатие на кнопку Далее при покупке произвольного количества виртуальной валюты.
click-commentНажатие на кнопку для отправки комментария.
click-buy-packageНажатие на кнопку Купить при покупке пакета виртуальной валюты.
click-buy-gift-packageНажатие на кнопку при покупке пакета виртуальной валюты в подарок.
click-buy-gift-custom-packageНажатие на кнопку при покупке произвольного количества виртуальной валюты в подарок.
click-btn-shareНажатие на кнопку для шаринга в социальной сети. В 'value' передается название социальной сети.
click-btn-payНажатие на кнопку Оплатить на форме ввода платежных данных.
click-btn-continueНажатие на кнопку покупки подписки.
click-btn-applyНажатие на кнопку Далее при погашении купона.
click-btn-activateНажатие на кнопку Активировать при активации ключа.
click-btn-acceptНажатие на кнопку покупки цифрового контента.
choose-payment-widgetНажатие на виджет способа оплаты. В 'value' передается название виджета.
choose-methodВыбор способа оплаты. В 'value' передается название способа оплаты.
change-statusСмена статуса платежа. Если пользователь закрывает страницу или платежный интерфейс и статус меняется после закрытия, сообщение о событии не отправляется.

В каждом сообщении от postMessage передаются параметры события. Если информация по параметру еще не собрана, придет пустая строка.

ПараметрТипОписание
actionstringИмя события.
valuestringДополнительный параметр, содержит специфические параметры события, которые меняются в зависимости от выбора пользователя.
statestringСтраница платежного интерфейса, на которой совершено действие.
datestringДата и время в формате GMT.
millisecondsnumberДата и время в формате Unix time.
timezonestringЧасовой пояс пользователя.
session_idstringИдентификатор сессии. К сессии относятся действия пользователя на протяжении 30 минут или до момента закрытия платежного интерфейса. Сессия начинается с момента открытия платежного интерфейса и сохраняется при перезагрузке страницы, на которой открыт платежный интерфейс.
payment_countrystringСтрана платежа.
purchase_invoice_idnumberИдентификатор заявки на оплату в системе Иксоллы.
purchase_external_idstringИдентификатор заявки на оплату в системе партнера.
purchase_typestringТип покупки. Может принимать значение: 'virtual item', 'virtual currency', 'pay2play', 'subscription'.
purchase_sumnumberНоминальная сумма покупки.
purchase_currencystringВалюта покупки.
purchase_skustringАртикул товара в покупке.
purchase_digital_content_skustringАртикул пакета игровых ключей в покупке.
purchase_descriptionstringОписание покупки.
virtual_currency_amountnumberКоличество виртуальной валюты.
coupon_codestringКод купона.
subscription_package_external_idnumberID подписки.
subscription_package_namestringИдентификатор подписки.
subscription_package_descriptionstringОписание подписки.
total_sumnumberИтоговая сумма покупки с учетом всех комиссий.
total_sum_currencystringВалюта итоговой суммы покупки.
user_idstringID пользователя (v1).
user_countrystringСтрана пользователя.
payment_instance_namestringНазвание способа оплаты.

События привязаны к страницам, на которых пользователь совершает действия при покупке.

ШагОписание
cartСтраница с выбранным товаром и подтверждением покупки за виртуальную валюту.
couponФорма для ввода купона.
giftcardСтраница со списком подарочных карт (виджет Подарочные карты).
giftrecipientСтраница покупки товара в подарок.
historyСтраница с историей покупок.
indexСлужебная страница, на которую происходит переход при открытии приложения. Не отображается пользователю.
legalМобильная версия страницы со ссылками на юридические документы.
listСписок способов оплаты.
paybycashСтраница с выбором способа оплаты через терминалы (виджет Оплата наличными).
paymentПлатежная форма.
paymentaccountСтраница с сохраненными платежными аккаунтами.
paymentreturnСлужебная страница, на которую происходит переход после оплаты в платежной системе, и с которой происходит дальнейший переход на страницу статуса. Не отображается пользователю.
pincartСтраница с выбором платформы для покупки цифрового контента.
pricepointМагазин с виртуальной валютой.
savedmethodСписок сохраненных способов оплаты.
shippingaddressФорма заполнения адреса доставки.
statusСтраница статуса.
subscriptionМагазин с планами подписок.
subscriptionchangeИзменение плана подписки.
useraccountСтраница информации об аккаунте (имя пользователя, баланс) с настройкой Отключить шаг подтверждения для будущих покупок.
userinventoryИнвентарь пользователя.
usermenuМобильная версия страницы с меню пользователя.
usersubscriptionУправление подписками пользователя.
usersubscriptioninfoСтраница с деталями подписки.
virtualitemМагазин с виртуальными товарами.


Чтобы отправлять события в ваши учетные записи Google Analytics и Facebook Analytics, необходимо настроить интеграцию с данными сервисами аналитики.

Список тестовых карт

В тестовом окружении вы можете использовать следующие карты для тестирования успешных платежей:

Карта3-D Secure
Номер карты: 4111111111111111
Срок действия: 12/40
CVV2: 123
Тип карты: VISA
Нет
Номер карты: 5555555555554444
Срок действия: 11/40
CVV2: 321
Тип карты: MasterCard
Нет
Номер карты: 4000000000000010
Срок действия: 12/40
CVV2: 123
Тип карты: VISA
Да
Номер карты: 5200000000000114
Срок действия: 11/40
CVV2: 321
Тип карты: MasterCard
Да
Номер карты: 6759649826438453
Срок действия: 12/40
CVV2: 321
Тип карты: Maestro
Да

Также вы можете использовать указанный ниже список карт для тестирования отклоненных транзакций:

Карта3-D SecureОписание
Номер карты: 4000000000000002
Срок действия: 12/40
CVV2: 123
Тип карты: VISA
НетНедостаточно средств
Номер карты: 5200000000000007
Срок действия: 11/40
CVV2: 321
Тип карты: MasterCard
НетНедостаточно средств
Номер карты: 4000000000000036
Срок действия: 12/40
CVV2: 123
Тип карты: VISA
ДаОтклонено
Номер карты: 5200000000000031
Срок действия: 11/40
CVV2: 321
Тип карты: MasterCard
ДаОтклонено

Список ошибок

КодОписание
0004-0001Невалидный токен.
0004-0008Интерфейс открыт по неверному URL (тестовое окружение открыто на secure.xsolla.com или боевой на sandbox-secure.xsolla.com).
0002-0004Не заключен договор.
0004-0010Интеграция без токена запрещена.
0010-0001Не найден переданный пакет.
0010-0003Не настроен DRM для пакета.
1000-0003Нет включенных модулей у проекта.
0004-0003Не передан идентификатор проекта.
0004-0009Данные в параметре access_data не соответствуют json-схеме.
0003-0001Запрещена оплата для выбранной страны.
1000-0002Сетевая ошибка. Не получен ответ API в процессе инициализации.
0007-0009Изменение плана подписки через токен невозможно. Валюта нового плана отличается от валюты предыдущего плана пользователя.
0004-0002Цифровая подпись запроса неверна.
0005-0001Ошибка при получении данных пользователя из биллинга.
1000-0004Не получены данные для страницы статуса.
1000-0001Сетевая ошибка. API не отвечает.
1004-0001Запрещена смена плана подписки.
0002-0002Проект не существует.

Токенизация

Список сохраненных платежных аккаунтов

Загрузка списка сохраненных платежных аккаунтов пользователя.

HTTP-ЗАПРОС

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

ПараметрТипОписание
project_id
integerID проекта.
user_id
integerID пользователя.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Запрос
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);
Ответ
[
  {
    "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"
  }
]

Оплата по сохраненному платежному аккаунту

Оплата по сохраненному платежному аккаунту.

HTTP-ЗАПРОС

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

ПараметрТипОписание
project_id
integerID проекта. Обязательный.
user_id
integerID пользователя. Обязательный.
type
stringТип платежного аккаунта: card / paypal. Обязательный.
account_id
integerИдентификатор сохраненного платежного аккаунта в базе данных Иксоллы. Обязательный.
user
objectОбъект с информацией о пользователе.
user.ip
stringIP адрес пользователя. Обязательный.
user.name
stringИмя пользователя.
purchase
objectОбъект с информацией о заказе.
purchase.virtual_currency
objectОбъект с данными о виртуальной валюте.
purchase.virtual_currency.quantity
floatКоличество виртуальной валюты в заказе.
purchase.checkout
objectОбъект с информацией о заказе.
purchase.checkout.currency
stringВалюта заказа. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.
purchase.checkout.amount
floatСумма заказа.
settings
objectОбъект с данными о настройках.
settings.mode
stringПередайте значение "sandbox", чтобы провести тестовые платежи. Для проведения реальных платежей этот параметр необходимо убрать.
custom_parameters
stringВаши дополнительные параметры. Параметры передаются в json хеше парами ключ-значение.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Запрос
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);
Ответ
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}
{
    "transaction_id": 123458390
}

Удаление сохраненного платежного аккаунта

Удаление сохраненного платежного аккаунта.

HTTP-ЗАПРОС

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

ПараметрТипОписание
project_id
integerID проекта.
user_id
integerID пользователя.
type
stringТип платежного аккаунта: card / paypal.
account_id
integerИдентификатор сохраненного платежного аккаунта в базе данных Иксоллы.
Copy
Full screen
http
  • http
  • curl
  • php
  • C#
  • python
  • ruby
  • java
  • js
Запрос
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);
Ответ