Настройка вебхуков
Вебхуки — это оповещения о происходящих в системе событиях. При наступлении определенного события Xsolla отправляет HTTP-запрос, в котором передаются данные о событии, к вашему приложению. Чаще всего отправляется POST
-запрос в JSON-формате.
Примеры событий:
- взаимодействие пользователя с каталогом товаров;
- оплата или отмена заказа.
Список вебхуков
Для продажи ключей не требуется валидация пользователя и начисление ему товаров. Вы можете подключить вебхуки, если вы хотите получать информацию о событиях, например об оплате или отмене заказа.
Если вы подключите вебхуки, важно обрабатывать все поступающие обязательные вебхуки.
На стороне Xsolla настроено 2 варианта отправки вебхуков при покупке и возврате товаров на сайте — информация с данными платежа и транзакции и информация о купленных товарах может приходить отдельно или может быть объединена в один вебхук.
Подробнее о вариантах получения вебхуков
Получение информации в объединенных вебхуках:
Если вы создали проект в Личном кабинете после 22 января 2025 г., вы получаете всю информацию в вебхуках Успешная оплата заказа (order_paid
) и Отмена заказа (order_canceled
). В этом случае вам не требуется обрабатывать вебхуки Успешный платеж (payment
) и Возврат платежа (refund
).
Получение информации в отдельных вебхуках:
Если вы создали проект в Личном кабинете до 22 января 2025 г. включительно, вы получаете вебхуки:
- Успешный платеж (
payment
) и Возврат платежа (refund
) с информацией о данных платежа и детали транзакции. - Успешная оплата заказа (
order_paid
) и Отмена заказа (order_canceled
) с информацией о купленных товарах.
Вам необходимо обрабатывать все поступающие вебхуки.
Для перехода к новому варианту с получением объединенных вебхуков обратитесь к персональному менеджеру проекта или напишите на csm@xsolla.com.
Для полноценной работы внутриигрового магазина и управления платежами, необходимо реализовать обработку основных вебхуков:
Если вы используете персонализацию каталога товаров, реализованную на стороне вашего приложения, настройте обработку вебхука Персонализация каталога на стороне партнера.
Настройка вебхуков в Личном кабинете
Чтобы включить получение вебхуков:
- Откройте проект в Личном кабинете.
- Нажмите Настройки проекта в боковом меню и перейдите на вкладку Вебхуки.
- В поле Сервер для вебхуков укажите URL-адрес вашего сервера для получения вебхуков в формате
https://example.com
. Вы также можете ввести URL-адрес из инструмента для тестирования вебхуков.
- Секретный ключ проекта для подписи вебхуков генерируется по умолчанию. Если вы хотите изменить его, нажмите значок обновления.
- Нажмите Получать вебхуки.
После сохранения URL-адреса в поле Сервер для вебхуков вам будет доступен раздел Расширенные настройки, в котором вы можете дать дополнительные разрешения, чтобы получать более подробные данные в вебхуках. Для этого установите соответствующие переключатели в положение Вкл. В строке каждого разрешения указаны вебхуки, на которые повлияют изменение настроек.
- Откройте проект в Личном кабинете.
- Нажмите Настройки проекта в боковом меню и перейдите на вкладку Вебхуки.
- Нажмите Отключить вебхуки.
Тестирование вебхуков в Личном кабинете
Если вебхуки настроены успешно, ниже блока настройки вебхуков отобразится блок тестирования вебхуков.
Раздел тестирования в Личном кабинете различается в зависимости от сценария получения вебхуков.
Ниже приведена схема покупки и возврата товаров на сайте с использованием объединенных вебхуков из этого списка. На вкладке Payments and store вы можете протестировать работу следующих вебхуков:
- Проверка существования пользователя (
user_validation
); - Успешная оплата заказа (
order_paid
); - Отмена заказа (
order_canceled
).
- В блоке тестирования вебхуков перейдите на вкладку Payments and store.
- В раскрывающемся списке выберите тип Игровые ключи. Если пакеты игровых ключей еще не настроены в Личном кабинете, отобразится кнопка:
- Подключить — если модуль Игровые ключи еще не подключен;
- Настроить — если вы ранее уже подключали модуль, но не завершили настройку.
- Заполните необходимые поля:
- Укажите произвольное значение в поле ID заказа Xsolla.
- Выберите пакет игровых ключей из раскрывающегося списка.
- ID пользователя — при тестировании вы можете указать любую комбинацию букв и цифр.
- Public user ID — ID, который известен пользователю, например, email или никнейм. Это поле отображается, если public user ID включен в вашем проекте в разделе Pay Station > Настройки.
- ID заявки в Xsolla — ID транзакции на стороне Xsolla. При тестировании вы можете указать любое числовое значение.
- Invoice ID — ID транзакции на стороне вашей игры. При тестировании вы можете указать любую комбинацию букв и цифр. Для успешной оплаты это не обязательный параметр, но вы можете передать его, чтобы связать ID транзакции на вашей стороне с ID транзакции на стороне Xsolla.
- Сумма — сумма платежа. При тестировании вы можете указать любое числовое значение.
- Валюта — выберите валюту из раскрывающегося списка.
- Нажмите Тестировать.
Для каждого вебхука вам необходимо настроить обработку обоих сценариев: успешного и с ошибкой.
Обработчик вебхуков
Обработчик вебхуков — это программный код, который позволяет принимать поступающие вебхуки на указанный URL-адрес, генерировать подпись и отправлять ответ на вебхук на сервер Xsolla.
Генерация подписи
При получении вебхука необходимо обеспечить безопасность передачи данных. Для этого из данных вебхука необходимо сгенерировать подпись и проверить, что она совпадает с подписью, отправленной в заголовке HTTP-запроса.
Чтобы сгенерировать подпись:
- Осуществите конкатенацию JSON из тела запроса и секретного ключа проекта.
- Примените SHA-1 криптографическую хэш-функцию к получившейся на первом шаге строке.
Отправка ответов на вебхук
Чтобы подтвердить получение вебхука, ваш сервер должен вернуть:
200
,201
, или204
HTTP-код в случае успешного ответа.400
HTTP-код с описанием проблемы, если указанный пользователь не был найден или если передана недействительная подпись.
Ваш обработчик вебхуков также может возвращать код 5xx
при временных проблемах на вашем сервере.
Если на вебхуки Успешная оплата заказа и Отмена заказа сервер Xsolla не получил ответ или получил ответ с кодом 5xx
, осуществляется повторная отправка вебхуков по следующему расписанию:
- 2 попытки с интервалом 5 минут;
- 7 попыток с интервалом 15 минут;
- 10 попыток с интервалом 60 минут.
Максимально осуществляется 20 попыток отправки вебхуков в течение 12 часов с момента первой попытки.
Если на вебхук Успешный платеж сервер Xsolla не получил ответ или получил ответ с 5xx
HTTP-кодом, также осуществляется повторная отправка вебхуков через увеличивающийся временной интервал. Максимально осуществляется 12 попыток в течение 12 часов.
Если на вебхук Проверка существования пользователя сервер Xsolla не получил ответ или получил ответ с 400
или 5xx
HTTP-кодом, повторная отправка вебхука Проверка существования пользователя не осуществляется.
Пользователь увидит ошибку, вебхуки Успешный платеж и Успешная оплата заказа отправлены не будут.
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.