Created.
Pay Station API (2.0)
- Версия: 2.0.0
- Серверы:
https://api.xsolla.com/api
Pay Station позволяет вам монетизировать игру, предоставляя пользователям удобный интерфейс для оплаты покупок во внутриигровом магазине. Чтобы настроить открытие платежного интерфейса, следуйте инструкции.
В Pay Station API представлены следующие группы методов:
- Токен — содержит метод для создания токена с любыми параметрами пользователя для дальнейшей обработки платежа через платежный интерфейс.
- Токенизация — содержит методы для проведения безопасных платежей без открытия платежного интерфейса и непосредственного участия пользователя.
- Отчеты — содержит методы для возвращения информации о транзакциях пользователя, а также создания отчетов и получения детализации выплат по валютам.
- Возврат платежа — содержит методы для создания запросов на отмену платежа и на частичный возврат платежа.
- Тестирование — содержит метод для тестирования процесса чарджбэка.
Подробные сведения о настройке платежного интерфейса приведены в руководстве по интеграции решения Payments.
Примечание
Вы также можете использовать раздел Xsolla Base API из коллекции Postman, чтобы протестировать методы, необходимые для интеграции.
Запрос
Вы можете создать токен с любыми параметрами пользователя. Вы отправляете эти параметры Xsolla при создании токена и получаете их обратно после успешной оплаты. Токен может содержать только описанные ниже параметры, либо параметры, предопределенные вами.
Если какой-либо параметр был передан в некорректном формате, токен не может быть выдан. В ответ вернется 422 HTTP код и в JSON объекте в теле ответа будет содержаться информация об ошибке. В параметре extended_message указывается, какие именно параметры были переданы неверно.
По умолчанию время жизни токена — 24 часа. Если вы хотите изменить это значение, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com. Новое значение будет действовать во всех проектах вашей компании, созданных в Личном кабинете.
Внимание
Токен, полученный в результате вызова этого метода, используется только для авторизации других запросов. Вы можете использовать этот токен для открытия платежного интерфейса, если у вас подключен продукт Subscriptions.
Чтобы открыть платежный интерфейс в новом окне, используйте ссылку: https://secure.xsolla.com/paystation4/?token={token}, где {token} — полученный токен.
Для тестирования используйте этот URL-адрес: https://sandbox-secure.xsolla.com/paystation4/?token={token}.
Внимание
Этот метод API не включает в себя path-параметр project_id, поэтому для авторизации вам необходимо использовать ключ API, который действует во всех проектах.
Объект с параметрами для настройки антифрод-фильтров. Список параметров приведен ниже на этой странице. Чтобы добавить кастомные параметры, свяжитесь с вашим персональным менеджером или напишите на csm@xsolla.com.
Дата последнего посещения согласно стандарту ISO 8601.
Использует ли игрок дополнительные способы защиты аккаунта.
Дата последней смены пароля согласно стандарту ISO 8601.
Участвует ли игрок в битвах PvP (Player(s) versus player(s); игрок против игрока).
Дата регистрации аккаунта согласно стандарту ISO 8601.
Период времени, который пользователь проводит в игре, согласно стандарту ISO 8601.
Количество внутриигровых событий, в которых участвовал игрок.
Суммарная стоимость инвентаря во внутриигровой валюте.
Объект с информацией о заказе.
Объект с данными о подписке.
Массив с данными о планах подписок. Только планы из этого списка будут показаны в платежном интерфейсе.
Валюта рекуррентного плана в заказе, на основе которой будут сделаны все расчеты.
Тип операции, применяемой к плану подписки пользователя. Чтобы изменить план подписки, передайте в параметре значение change_plan. В параметре purchase.subscription.plan_id необходимо передать ID нового плана подписки.
Внешний ID плана подписки. Вы можете найти этот параметр в Личном кабинете в разделе Subscriptions > Планы подписки.
Параметры для настройки процесса оплаты и платежного интерфейса для пользователя.
Предпочтительная валюта платежа. Используется трехбуквенное обозначение валюты согласно стандарту ISO 4217.
ID транзакции в игре. Должен быть уникальным для каждого платежа пользователя. Изучите подробную информацию в документации.
Язык интерфейса. Используется двухбуквенное обозначение (в нижнем регистре).
Передайте значение sandbox, чтобы провести тестовые платежи. Обратите внимание, что URL для страницы оплаты будет https://sandbox-secure.xsolla.com.
Виджет оплаты. Принимает значения paybycash или giftcard. При передаче этого параметра пользователь перенаправляется на виджет Pay with Cash или Gift Cards.
ID игры в Xsolla. Вы можете найти этот параметр в Личном кабинете.
Настройки политики редиректа.
Задержка (в секундах), после которой пользователь автоматически перенаправляется на return URL.
Действие, которое совершает платежный интерфейс, когда пользователь закрывает окно платежного интерфейса или нажимает кнопку Back to the Game. Может принимать значения redirect (по умолчанию) и postmessage. Если указано значение redirect, пользователь перенаправляется на URL-адрес, указанный в токене или в Личном кабинете. Если указано значение postmessage, при закрытии окна платежного интерфейса отправляется событие close, при нажатии Back to the Game — событие return.
Статус платежа, при котором пользователь перенаправляется на return URL. Принимает значение none, successful, successful_or_canсeled или any.
Отображать ли на странице со статусом платежа таймер обратного отсчета до перенаправления пользователя. Длительность отсчета определяется значением, переданным в параметре settings.redirect_policy.delay.
URL-адрес страницы, на которую пользователь будет перенаправлен после совершения платежа. Подробная информация о настройке редиректов приведена в документации.
Объект с настройками интерфейса.
Альтернативный вид экрана платежного интерфейса при его открытии. Например, может отображать приоритетные способы оплаты.
Когда передано значение apple-pay, при открытии платежного интерфейса пользователь видит приоритетную кнопку оплаты с помощью Apple Pay и ссылку для перехода к списку других способов оплаты. На устройства Android эта логика не распространяется.
Отображать ли кнопку для быстрой оплаты с помощью Apple Pay в верхней части платежного интерфейса, если этот способ оплаты поддерживается на устройстве пользователя. true по умолчанию. Если передано значение false, Apple Pay отображается в списке способов оплаты в соответствии с алгоритмом PayRank.
Примечание
На мобильных Android-устройствах, а также на любых других, где сервис Apple Pay недоступен, этот способ оплаты будет скрыт из списка вне зависимости от значения параметра.
Объект с данными настройки пунктов меню.
Объект с данными настройки меню подписок.
Объект с данными настройки меню виртуальной валюты.
Возможность ввода произвольного количества виртуальной валюты в интерфейсе оплаты.
Должна ли вкладка отображаться в меню.
Объект с данными настройки меню предметов.
Должна ли вкладка отображаться в меню.
Группа, которая будет выбрана при открытии вкладки.
Передайте значение code, чтобы в платежном интерфейсе отображалось трехбуквенное обозначение валюты по ISO 4217. По умолчанию вместо трехбуквенного обозначения валюты отображается значок валюты.
Объект с данными настроек для desktop-версии.
Объект с настройками header.
Показывать ли кнопку Закрыть в платежном интерфейсе. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию.
Значок кнопки Закрыть в платежном интерфейсе.
| Перечисление Значение | Описание |
|---|---|
| arrow | Значок ← в левой части хедера платежного интерфейса. |
| cross | Значок × в правой части хедера платежного интерфейса. |
Внешний вид header. Может принимать значения compact (название игры и ID пользователя не будут показываться в header) или normal.
Если true, логотип будет отображаться в хедере. Чтобы загрузить изображение, откройте проект в Личном кабинете и перейдите в раздел Pay Station > Настройки.
Объект с данными настройки списка подписок.
Здесь вы можете передать текст про подписки. Текст появится перед списком рекуррентных планов в интерфейсе оплаты.
Расположение способа оплаты с помощью Google Pay. Если передано значение true, кнопка для быстрой оплаты с помощью Google Pay отображается в верхней части платежного интерфейса вне зависимости от устройства и браузера пользователя. Если передано значение false, Google Pay отображается в списке способов оплаты в соответствии с алгоритмом PayRank. Если параметр не передан, Google Pay отображается в верхней части платежного интерфейса на любых устройствах и браузерах пользователя, кроме Safari — в Safari он отображается в списке способов оплаты.
Отображение в платежном интерфейсе списка товаров корзины и финансовой информации. Если передано значение true, информация отображается в развернутом виде. Если передано значение false (по умолчанию) или параметр не передан, информация отображается в свернутом виде.
Осуществляется ли переход из встроенного браузера лаунчера (WebView) во внешний браузер для совершения покупки. false по умолчанию.
Скрыт ли на странице оплаты переключатель языков. Если передано значение false (по умолчанию), переключатель отображается.
Отображается ли список способов оплаты, доступных в стране игрока, при открытии платежного интерфейса. Если передано значение false (по умолчанию), отображается способ оплаты, переданный в параметре settings.payment_method или способ, выбранный алгоритмом PayRank.
Отключение перехода по внешним ссылкам, по умолчанию false. При нажатии на внешнюю ссылку отправляется событие external-link-open с помощью механизма postMessage. В параметре url передается адрес, по которому выполняется переход.
Показывать ли в платежном интерфейсе строку поиска способов оплаты. Если передано значение true, строка поиска скрыта. false по умолчанию.
Показывать ли предупреждение об обработке транзакции при наведении на значок × перед закрытием страницы оплаты. Если передано значение false или параметр не передан, предупреждение не показывается. По умолчанию true.
Открывать ли проверку 3-D Secure в новом окне браузера. Если используется политика безопасности контента (Content Security Policy, CSP), передайте значение true.
Расположение основных элементов платежного интерфейса. Вы можете открыть платежный интерфейс внутри вашей игры и/или поменять местами колонки с информацией о заказе и способах оплаты. Подробная информация представлена в инструкции по кастомизации.
Показывать ли кнопку Закрыть в мобильной версии платежного интерфейса. Нажатие на кнопку закрывает платежный интерфейс и перенаправляет пользователя на адрес, указанный в параметре settings.return_url. false по умолчанию.
Режим отображения платежного интерфейса для управления сохраненными способами оплаты. Может принимать значение user_account или не передаваться. В режиме управления сохраненными способами оплаты пользователю доступно только переключение языка, добавление и удаление способов оплаты.
Примечание
При передаче этого параметра не будет отображаться кнопка редиректа. Чтобы перенаправить пользователя после сохранения способа оплаты, настройте автоматический редирект.
Тема платежного интерфейса. Может принимать значения 63295a9a2e47fab76f7708e1 для светлой темы (по умолчанию) или 63295aab2e47fab76f7708e3 для темной темы. Вы также можете создать собственную тему и передать ID темы в этом параметре.
Объект с данными об аккаунте пользователя.
Раздел Сохраненные способы.
Отображать ли в платежном интерфейсе значок карандаша для перехода к редактированию сохраненных способов оплаты. По умолчанию true.
Объект с информацией о пользователе.
Объект с данными об атрибутах пользователя, необходимых для фильтрации списка предметов. Параметры передаются в json хэше парами ключ-значение.
Может ли пользователь изменить страну на странице оплаты. Если в токене передан параметр country.value, значение по умолчанию — false.
Используется двухбуквенное обозначение страны согласно стандарту ISO 3166-1 alpha-2.
Параметр user.email используется при построении моделей антифрода и положительно влияет на конверсию платежей. Передача параметра является обязательным требованием Xsolla и платежных систем. Если параметр не передан в запросе, на платежной форме появляется обязательное поле для ввода email-адреса. Пользователь получает чек о покупке на email-адрес, который был передан в параметре или указан в платежной форме.
Может ли пользователь указать свой email-адрес на странице оплаты. Если в токене передан параметр user.email.value, значение по умолчанию — false.
Email-адрес пользователя. Должен быть валидным в соответствии с протоколом RFC 822.
Уникальный ID пользователя в игре, который хранится на вашей стороне. Убедитесь, что указываете существующий ID пользователя. При возникновении ошибок изучите ответы на частые вопросы.
Объект с реквизитами юридического лица.
Страна регистрации. Используется двухбуквенное обозначение страны согласно стандарту ISO 3166-1 alpha-2.
Параметр позволяет однозначно идентифицировать пользователя, а также, в отличие от user ID, известен пользователю (адрес электронной почты, никнейм, и т. д.). Параметр может использоваться при оплате покупки вне игрового магазина (например, кнопка игры в терминалах оплаты).
Объект с данными о характеристиках трафика.
Название кампании. В данный параметр следует указывать транслитерированное или переведенное на английский язык название кампании.
Ключевое слово кампании. При использовании этого параметра в статистике будут собираться данные по тем ключевым словам, которые используются для таргетинга вашей рекламной кампании (а не по поисковым запросам). В Google Analytics содержимое метки utm_term попадает в единый отчет с поисковыми запросами.
- https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
- Mock serverhttps://xsolla.redocly.app/_mock/ru/api/pay-station/merchants/{merchant_id}/token
- curl
- JavaScript
- Node.js
- Python
- Java
- C#
- PHP
- Go
- Ruby
- R
- Payload
curl -i -X POST \
-u <username>:<password> \
'https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token' \
-H 'Content-Type: application/json' \
-d '{
"settings": {
"currency": "USD",
"language": "en",
"project_id": 16184,
"ui": {
"size": "medium"
}
},
"user": {
"email": {
"value": "email@example.com"
},
"id": {
"value": "user_2"
},
"name": {
"value": "John Smith"
}
}
}'{ "token": "eop57k1boA7nnYPtewZ6KEXJyJADEwRT" }