Настройка вебхуков

Вебхуки — это оповещения о происходящих в системе событиях. При наступлении определенного события Xsolla отправляет HTTP-запрос, в котором передаются данные о событии, к вашему приложению. Чаще всего отправляется POST-запрос в JSON-формате.

Примеры событий:

  • взаимодействие пользователя с каталогом товаров;
  • оплата или отмена заказа.

Список вебхуков

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

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

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. В проекте в Личном кабинете перейдите в раздел Настройки > Вебхуки.
  2. В поле Сервер для вебхуков укажите URL-адрес вашего сервера для получения вебхуков в формате https://example.com. Вы также можете ввести URL-адрес из инструмента для тестирования вебхуков.
Внимание
Для передачи данных используется протокол HTTPS, протокол HTTP не поддерживается.
  1. Секретный ключ проекта для подписи вебхуков генерируется по умолчанию. Если вы хотите изменить его, нажмите значок обновления.
  2. Нажмите Получать вебхуки.

После сохранения URL-адреса в поле Сервер для вебхуков вам будет доступен раздел Расширенные настройки, в котором вы можете дать дополнительные разрешения, чтобы получать более подробные данные в вебхуках. Для этого установите необходимые переключатели в активное положение. В строке каждого разрешения указаны вебхуки, на которые повлияют изменение настроек.

Примечание
Если вы зарегистрировались в Личном кабинете до 22 января 2025 г. (включительно), переключатели располагаются в разделе Настройки > Вебхуки > Тестирование > Payments > Расширенные настройки.
Примечание
Для тестирования вебхуков вы можете выбрать любой специализированный сайт, например webhook.site, или платформу, например ngrok.
Внимание
Вы не можете отправлять вебхуки на разные URL-адреса одновременно. Однако вы можете сначала указать в Личном кабинете URL-адрес для тестирования, а затем изменить его на боевой.
Чтобы отключить получение вебхуков:
  1. В проекте в Личном кабинете перейдите в раздел Настройки > Вебхуки.
  2. Нажмите Отключить вебхуки.

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

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

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

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

Чтобы протестировать вебхуки:

  1. В блоке тестирования вебхуков перейдите на вкладку Payments and Store.
  2. В раскрывающемся списке выберите Игровые ключи. Если пакеты игровых ключей еще не настроены в проекте, вы увидите кнопку для перехода к их настройке.
  3. Заполните необходимые поля:
    • ID заказа Xsolla — ID заказа на стороне Xsolla. При тестировании вы можете указать любое числовое значение.
    • ID заявки в Xsolla — ID транзакции на стороне Xsolla. При тестировании вы можете указать любое числовое значение.
    • Предметы — товары, информацию о которых вы хотите получить в вебхуке. Выберите артикул товара из раскрывающегося списка и укажите его количество. Вы можете выбрать несколько товаров. Для этого нажмите + и добавьте товары в новой строке.
    • ID пользователя — при тестировании вы можете указать любую комбинацию букв и цифр.
    • Invoice ID — ID транзакции на стороне вашей игры. При тестировании вы можете указать любую комбинацию букв и цифр. Для успешной оплаты это не обязательный параметр, но вы можете передать его, чтобы связать ID транзакции на вашей стороне с ID транзакции на стороне Xsolla.
    • Количество — сумма платежа. При тестировании вы можете указать любое числовое значение.
    • Валюта — выберите валюту из раскрывающегося списка.
  4. Нажмите Тестировать.

На указанный URL-адрес придут вебхуки Успешная оплата заказа, Отмена заказа и Проверка пользователей с указанными данными. Ниже кнопки Проверить вебхук отобразятся результаты тестирования каждого типа вебхука. Для каждого вебхука вам необходимо настроить обработку обоих сценариев: успешного и с ошибкой.

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

Обработчик вебхуков

Обработчик вебхуков — это программный код, который позволяет принимать поступающие вебхуки на указанный URL-адрес, генерировать подпись и отправлять ответ на вебхук на сервер Xsolla.

Генерация подписи

При получении вебхука необходимо обеспечить безопасность передачи данных. Для этого из данных вебхука необходимо сгенерировать подпись и проверить, что она совпадает с подписью, отправленной в заголовке HTTP-запроса.

Чтобы сгенерировать подпись:

  1. Осуществите конкатенацию JSON из тела запроса и секретного ключа проекта.
  2. Примените SHA-1 криптографическую хэш-функцию к получившейся на первом шаге строке.

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

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

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

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

Если на вебхуки Успешная оплата заказа и Отмена заказа сервер Xsolla не получил ответ или получил ответ с кодом 5xx, осуществляется повторная отправка вебхуков по следующему расписанию:

  • 2 попытки с интервалом 5 минут;
  • 7 попыток с интервалом 15 минут;
  • 10 попыток с интервалом 60 минут.

Максимально осуществляется 20 попыток отправки вебхуков в течение 12 часов с момента первой попытки.

Логика повторной отправки вебхуков Успешный платеж и Возврат платежа описана на странице соответствующего вебхука.

Если на вебхук Проверка существования пользователя сервер Xsolla не получил ответ или получил ответ с 400 или 5xx HTTP-кодом, повторная отправка вебхука Проверка существования пользователя не осуществляется.

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

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

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

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