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

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

Примечание

На стороне Xsolla настроено 2 варианта отправки вебхуков при покупке и возврате товаров — информация с данными платежа и транзакции и информация о купленных товарах может приходить отдельно или может быть объединена в один вебхук. По умолчанию во всех новых проектах настроена отправка объединенных вебхуков.

Для перехода к новому варианту с получением объединенных вебхуков обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

Подробнее о вариантах получения вебхуков

Получение информации в объединенных вебхуках:

Если вы зарегистрировались в Личном кабинете после 22 января 2025 года, вы получаете всю информацию в вебхуках Успешная оплата заказа (order_paid) и Отмена заказа (order_canceled). В этом случае вам не требуется обрабатывать вебхуки Успешный платеж (payment) и Возврат платежа (refund).

Получение информации в отдельных вебхуках:

Если вы зарегистрировались в Личном кабинете до 22 января 2025 г. включительно, вы получаете вебхуки:

Вам необходимо обрабатывать все поступающие вебхуки.

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

Название вебхукаОписание
Проверка пользователей > Проверка существования пользователя (user_validation)Отправляется на разных этапах оплаты, чтобы удостовериться, что пользователь зарегистрирован в игре.
Игровые сервисы > Объединенные вебхуки > Успешная оплата заказа (order_paid)Данные платежа, детали транзакции и информация о купленных товарах. Используйте данные вебхука для начисления товаров пользователю.
Игровые сервисы > Объединенные вебхуки > Отмена заказа (order_canceled)Данные отмененного платежа, детали транзакции и информацию о купленных товарах. Используйте данные вебхука для списания купленных товаров у пользователя.

Ниже приведена схема покупки и возврата товаров с использованием объединенных вебхуков.

Примечание
Возврат и чарджбэк могут быть инициированы не только пользователем, но также Xsolla или платежным провайдером.

Если вы используете персонализацию каталога товаров, реализованную на стороне вашего приложения, настройте обработку вебхука Персонализация каталога на стороне партнера.

Примечание

Чтобы принимать реальные платежи, достаточно подписать лицензионный договор и реализовать обработку вебхуков:

Настройка вебхуков в Личном кабинете

Чтобы включить получение вебхуков:

  1. В проекте в Личном кабинете перейдите в раздел Настройки проекта > Вебхуки.
  2. В поле Сервер для вебхуков укажите URL-адрес вашего сервера для получения вебхуков в формате https://example.com. Вы также можете ввести URL-адрес из инструмента для тестирования вебхуков.
Внимание
Для передачи данных используется протокол HTTPS, протокол HTTP не поддерживается.
Примечание
Для тестирования вебхуков вы можете выбрать любой специализированный сайт, например webhook.site, или платформу, например ngrok.
  1. Создайте секретный ключ:
    1. В разделе Secret keys нажмите Add key.
    2. В открывшемся модальном окне введите название ключа, которое позволит идентифицировать его в общем списке.
    3. Нажмите Create key.
    4. Нажмите Copy secret и сохраните созданный ключ на вашей стороне.
    5. Нажмите Done.
    6. Подтвердите, что вы сохранили ключ, и нажмите Ok, close.
Внимание

Основные рекомендации:

  • Сохраните созданный секретный ключ на вашей стороне. Ключ отображается в Личном кабинете только один раз — сразу после создания.
  • Никому не сообщайте ваш секретный ключ.
  • Секретный ключ должен храниться на вашем сервере и никогда — в бинарных файлах или на фронтенде.
  1. Нажмите Получать вебхуки.
Ротация секретных ключей

В одном проекте вы можете создать до 5 секретных ключей, чтобы обеспечить их ротацию.

В проекте может быть только один активный секретный ключ. Если вы хотите его изменить, нажмите Set as active у другого ключа и подтвердите действие. После успешной миграции на новый ключ мы рекомендуем удалять деактивированные ключи.

Тестирование вебхуков в Личном кабинете

Раздел тестирования отображается в Личном кабинете ниже расширенных настроек как только вы включили получение вебхуков в вашем проекте.

Вы можете протестировать работу следующих вебхуков:

Название вкладки для тестирования вебхуковНазвание и тип вебхука
Payments and StoreПроверка пользователей > Проверка существования пользователя (user_validation)
Игровые сервисы > Объединенные вебхуки > Успешная оплата заказа (order_paid)
Игровые сервисы > Объединенные вебхуки > Отмена заказа (order_canceled)
SubscriptionsПроверка пользователей > Проверка существования пользователя (user_validation)
Платежи > Успешный платеж (payment)
DisputeАнтифрод > Диспут (dispute)
Примечание
Ниже приведена инструкция по тестированию сценария покупки и возврата товаров на сайте с использованием объединенных вебхуков.

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

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

Отправка ответов на вебхук

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

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

Ваш обработчик вебхуков также может возвращать код 5xx при временных проблемах на вашем сервере.

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

Следующие шаги

  1. Настройте продажу подписок (опционально).
  2. Настройте аутентификацию пользователя.

Настройка информации о товарах в вебхуках

Вы можете настроить, какие данные о товарах передаются в вебхуках Успешная оплата заказа и Отмена заказа в массиве items.

Подключение передачи дополнительных параметров

Подключите передачу дополнительных параметров, которые показывают:

  • является ли товар бесплатным (is_free);
  • является ли товар бонусом (is_bonus);
  • входит ли товар в состав бандла (is_bundle_content).

Чтобы получать эти параметры, переключите вебхуки на версию 2 с помощью метода API Обновление информации о настройках вебхуков. В версии 1 (используется по умолчанию) эти параметры отсутствуют.

Пример массива items с дополнительными параметрами:

Copy
Full screen
Small screen
 1"items": [
 2      {
 3        "sku": "com.xsolla.item_new_1",
 4        "type": "bundle",
 5        "is_pre_order": false,
 6        "is_free": false,
 7        "is_bonus": false,
 8        "is_bundle_content": false,
 9        "quantity": 1,
10        "amount": "1000",
11        "promotions": []
12      },
13      {
14        "sku": "com.xsolla.gold_1",
15        "type": "virtual_currency",
16        "is_pre_order": false,
17        "is_free": false,
18        "is_bonus": false,
19        "is_bundle_content": true,
20        "quantity": 1500,
21        "amount": "[null]",
22        "promotions": []
23      }
24 ]

Отключение передачи содержимого бандла

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

В этом случае товары, входящие в состав бандла, не будут включены в массив items. В приведенном выше примере будет исключен товар с SKU com.xsolla.gold_1, являющийся частью бандла.

Пример массива items без содержимого бандла:

Copy
Full screen
Small screen
 1
 2"items": [
 3      {
 4        "sku": "com.xsolla.item_new_1",
 5        "type": "bundle",
 6        "is_pre_order": false,
 7        "is_free": false,
 8        "is_bonus": false,
 9        "is_bundle_content": false,
10        "quantity": 1,
11        "amount": "1000",
12        "promotions": []
13      }
14 ]

Чтобы отключить передачу содержимого бандла, обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.

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

Полезные ссылки

Последнее обновление: 5 июня 2026

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

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