Настройка продажи товаров
In-Game Store позволяет монетизировать игры через продажи внутри игры, продавая за реальную или виртуальную валюту следующие типы товаров:
- внутриигровую валюту и пакеты валюты;
- расходуемые предметы;
- нерасходуемые предметы;
- предметы с ограниченным сроком действия.
Товар | Способ продажи |
---|---|
Один товар (например, виртуальный предмет или произвольное количество виртуальной валюты) | Методы быстрой покупки |
Продажа товаров в составе корзины | Передайте уникальный ID пользователя в заголовке в виде числа или строки при вызове методов API подраздела Catalog из группы методов Виртуальные предметы и валюта (параметр x-unauthorized-id ). Генерация ID происходит на клиенте, например при помощи библиотеки для генерации ID. |
Чтобы управлять доступом пользователей к вашему приложению и возможностями продуктов Xsolla, необходимо настроить авторизацию. Вы можете это сделать с помощью продукта Login или вашей собственной системы авторизации.
Если вы уже реализовали собственную систему авторизации и хотите использовать только платежный интерфейс Xsolla, сгенерируйте Pay Station access token и настройте обработку вебхуков на вашем сервере.
Вы можете использовать продукт Login для вашего внутриигрового магазина, если у вас отсутствует своя серверная часть или вы хотите использовать готовое решение, чтобы:
- хранить каталог товаров;
- управлять каталогом товаров;
- управлять ценами и региональными ценами;
- авторизовывать пользователей;
- обрабатывать транзакции.
Аутентификация через продукт Login
Продукт Login поддерживает регистрацию и аутентификацию пользователей по стандартному протоколу OAuth 2.0. Стандартный протокол аутентификации OAuth 2.0 ориентирован на простоту разработки клиентского приложения. OAuth 2.0 позволяет обновлять токен без участия пользователя.
Данные об авторизованных пользователях могут храниться следующими способами:
- На стороне Xsolla. Для настройки используйте руководство по интеграции продукта Login.
- На стороне PlayFab. Для настройки используйте инструкцию для хранилища PlayFab.
- На вашей стороне. Для настройки используйте инструкцию для собственного хранилища.
Аутентификация через Pay Station access token
Общий сценарий
Сценарий взаимодействия вашего клиента и сервера Xsolla:- Ваш клиент отправляет на ваш сервер запрос на аутентификацию.
- Ваш сервер запрашивает токен авторизации, передавая в запросе заголовок с параметрами
project_id/merchant_id
иapi_key
на сервер Xsolla. - Сервер Xsolla в ответе возвращает Pay Station access token.
- Ваш сервер передает полученный Pay Station access token вашему клиенту.
- Возвращенный Pay Station access token используется как авторизационный токен для аутентификации в API продукта In-Game Store и построения интерфейса магазина с помощью клиентских методов.
Получение Pay Station access token
В серверной части вашего приложения реализуйте метод для получения Pay Station access token с использованием HTTP POST запроса.
Xsolla API использует базовую HTTP-аутентификацию. Запрос должен содержать заголовок Authorization: Basic <your_authorization_basic_key>
, где <your_authorization_basic_key>
— пара ID продавца:ключ API, закодированная по стандарту Base64. Значения параметров вы можете найти в Личном кабинете:
- ID продавца указан:
- В разделе Настройки компании > Компания.
- Aдресной строке браузера на любой странице Личного кабинета. URL-адрес имеет вид
https://publisher.xsolla.com/<merchant ID>/<Publisher Account section>
.
- Ключ API отображается в Личном кабинете только при создании и должен храниться на вашей стороне. Создать ключ можно в разделах:
- Настройки компании > Ключи API;
- Настройки проекта > Ключи API.
Подробная информация о работе с ключами API приведена в справочнике API.
Основные рекомендации:
- Сохраните созданный ключ API на вашей стороне. Вы можете посмотреть ключ API в Личном кабинете только один раз при его создании.
- Никому не сообщайте ваш ключ API, так как он дает доступ к управлению аккаунтом и проектами в Личном кабинете.
- Ключ API должен храниться на вашем сервере и никогда — в бинарных файлах или на фронтенде.
Если необходимый метод API не включает в себя path-параметр project_id
, используйте для авторизации ключ API, который действует во всех проектах.
HTTP-запрос:
POST https://api.xsolla.com/merchant/v2/merchants/{merchant_id}/token
В теле запроса на получение токена передайте следующие параметры:
Параметр | Тип | Описание |
---|---|---|
settings | object | Объект, содержащий настройки проекта. |
settings.project_id | integer | ID игры в Xsolla. Вы можете найти этот параметр в Личном кабинете рядом с названием проекта. Обязательный. |
user | object | Объект с информацией о пользователе. |
user.id | object | Объект с данными об ID пользователя в вашей системе авторизации. |
user.id.value | string | ID пользователя. Обязательный. |
user.email | object | Объект с данными о email-адресе пользователя. |
user.email.value | string | Email пользователя. Должен быть валидным в соответствии с протоколом RFC 822. Обязательный. |
user.name | object | Объект с информацией о нике пользователя.Обязательный. |
user.name.value | string | Никнейм пользователя. |
user.steam_id | object | Объект с данными о Steam ID пользователя. |
user.steam_id.value | string | Steam ID пользователя. Обязательный, если приложение публикуется на Steam. |
user.playfab_id | object | Объект с данными о PlayFab ID пользователя. |
user.playfab_id.value | string | PlayFab ID пользователя. Обязательный, если приложение использует сервисы PlayFab для начисления товаров. |
custom_parameters
, purchase
и т. д.) передавать не следует, они не предназначены для получения авторизационного токена.Время жизни Pay Station access token при работе с внутриигровым магазином и инвентарем — 1 час с момента последнего обращения к Xsolla API. Чтобы изменить время жизни Pay Station access token, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.
Реализуйте получение нового Pay Station access token после истечения срока действия. Рекомендуется получать новый токен в фоновом режиме, без необходимости повторного входа пользователя в приложение.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.