Начисление покупок пользователю

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

Запрос информации с помощью API

Вы можете получить данные о приобретенных пользователем виртуальных предметах, виртуальной валюте или бандлах из инвентаря игрока на стороне Иксоллы. Чтобы при начислении учитывать как покупки сделанные через Веб-магазин, так и покупки, сделанные другими способами, синхронизируйте данные об инвентаре игрока на стороне приложения и на стороне Иксоллы.

Методы API для работы с инвентарем включают в себя следующие группы:

Примечание
Серверные методы используют базовую HTTP-аутентификацию.

Примечание
Клиентские методы используют серверную OAuth 2.0-аутентификацию.

Базовая HTTP-аутентификация

Запрос должен содержать заголовок Authorization: Basic <your_authorization_basic_key>, где <your_authorization_basic_key> — пара merchant_id:api_key, закодированная по стандарту Base64. Значения параметров вы можете найти в Личном кабинете:

  • merchant_id указан в разделе Настройки проекта > Вебхуки > ID продавца.
  • api_key указан в разделе Настройки компании > Ключ API.

Серверная OAuth 2.0-аутентификация

Запрос должен содержать заголовок Authorization: Bearer <user_JWT>, где <user_JWT> — JWT пользователя.

Чтобы получить JWT пользователя:

  1. Создайте серверный OAuth 2.0-клиент:
    1. Откройте ваш проект в Личном кабинете. Перейдите в раздел Авторизация > ваш вариант авторизации и нажмите Настроить.
    2. В блоке Безопасность нажмите OAuth 2.0 аутентификация.
    3. Нажмите Добавить OAuth 2.0 и укажите:
      • Название клиента.
      • URI переадресации OAuth 2.0. Обязательное поле.
      • Тип аутентификации — серверный.
      • ID проекта.
    4. Нажмите Подключить. Сформированные ID клиента и секретный ключ понадобятся вам для дальнейшей интеграции.

  1. Получите серверный JWT. Для этого вызовите метод API Generate JWT, передав следующие параметры:
    • grant_type — тип JWT. Укажите значение client_credentials.
    • client_secret — секретный ключ серверного OAuth 2.0-клиента.
    • client_id — идентификатор серверного OAuth 2.0-клиента.

Примечание
Срок жизни серверного JWT — 59 минут.

  1. Получите JWT пользователя. Для этого вызовите метод API Auth by custom ID. Запрос должен содержать заголовок X-Server-Authorization: <server_JWT>, где <server_JWT> — серверный JWT, полученный на шаге 2.

Получение информации с помощью вебхуков

  1. Настройте параметры для получения вебхуков:
    1. Откройте ваш проект в Личном кабинете.
    2. Нажмите Настройки проекта в боковом меню.
    3. Перейдите на вкладку Вебхуки.
    4. Установите переключатель Вебхуки в положение Вкл.
    5. В поле URL вебхука укажите URL-адрес, на который вы хотите получать вебхуки.
    6. Секретный ключ проекта для подписи вебхуков генерируется по умолчанию. Если вы хотите изменить его, нажмите значок обновления.
    7. Нажмите Сохранить настройки.

  1. В приложении реализуйте обработку следующих типов вебхуков:

Чтобы подтвердить получение вебхука, ваш сервер должен вернуть:

  • 204 HTTP-код без тела сообщения в случае успешного ответа.
  • 400 HTTP-код с описанием проблемы, если указанный пользователь не был найден или если передана недействительная подпись.

Вы можете протестировать отправку вебхуков Успешный платеж и Возврат платежа в Личном кабинете в разделе Настройки проекта > Вебхуки > Магазин.

При отсутствии реальных значений допускается ввод произвольных значений.

Также протестировать отправку вебхуков можно при проверке процесса оплаты в тестовом или боевом окружении. Протестировать вебхук Возврат платежа можно только в боевом окружении.

Была ли статья полезна?
Спасибо!
Что может сделать страницу еще лучше? Сообщение
Жаль, что так произошло
Расскажите, почему статья не была полезна. Сообщение
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.
Оценить страницу
Оценить страницу
Что может сделать страницу еще лучше?

В другой раз

Спасибо за обратную связь!
Последнее обновление: 22 августа 2022

Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.

Сообщите о проблеме
Мы постоянно улучшаем качество нашей документации. Ваш отзыв поможет нам в этом.
Укажите email-адрес, чтобы мы могли связаться с вами
Спасибо за обратную связь!