Вебхук — это механизм моментального оповещения вашей системы о настроенных событиях на стороне Иксоллы. Вы можете использовать вебхуки для автоматизации бэк-офиса и других функций вашего приложения.
Примеры событий, о которых вы можете получать оповещения:
Когда происходит настроенное событие, Иксолла через вебхук оповещает вашу систему об этом. В результате могут выполняться такие действия, как:
Пример работы вебхука обработки платежей:
Для корректной работы сервиса вебхуков должны выполняться следующие условия:
185.30.20.0/24
, 185.30.21.0/24
, 185.30.23.0/24
, 35.236.90.90
,
34.102.38.178
.Обратите внимание
Если обработчик вебхуков получил вебхук с идентификатором, который уже существует в базе, необходимо вернуть результат предыдущей обработки данной транзакции. Не рекомендуется зачислять пользователю повторную покупку и создавать дублирующие записи в базе данных.
Примечание
Иксолла использует HTTP-коды ответа для обозначения успешного или ошибочного запроса. Код 204 обозначает успешную обработку оповещения.
Из-за проблем с интернет-соединением или временных проблем на вашем сервере вебхуки могут теряться или задерживаться. Для решения этой проблемы Иксолла отправляет вебхуки многократно. Вебхуки отправляются в течение 12 часов с момента первой попытки, пока ваш обработчик не подтвердит их получение. Максимальное количество попыток — 12.
Примечание
Хотя интернет-соединение является частой причиной проблем с вебхуками, наиболее вероятной причиной является проблема в логике обработчика вебхуков.
Подпись обеспечивает безопасность передачи данных. Генерация подписи состоит из следующих шагов:
POST /your_uri HTTP/1.1
Host: your.host
Accept: application/json
Content-Type: application/json
Content-Length: 165
Authorization: Signature 52eac2713985e212351610d008e7e14fae46f902
{
"notification_type":"user_validation",
"user":{
"ip":"127.0.0.1",
"phone":"18777976552",
"email":"email@example.com",
"id":1234567,
"name":"Xsolla User",
"country":"US"
}
}
curl -v 'https://your.hostname/your/uri' \
-X POST \
-H 'Authorization: Signature 52eac2713985e212351610d008e7e14fae46f902' \
-d '{
"notification_type":
"user_validation",
"user":
{
"ip": "127.0.0.1",
"phone": "18777976552",
"email": "email@example.com",
"id": 1234567,
"name": "Xsolla User",
"country": "US"
}
}'
Коды ошибок для HTTP-кода 400:
Код | Описание |
---|---|
INVALID_USER | Неверный пользователь |
INVALID_PARAMETER | Неверный параметр |
INVALID_SIGNATURE | Подпись неверна |
INCORRECT_AMOUNT | Некорректная сумма |
INCORRECT_INVOICE | Неверный заказ |
HTTP/1.1 400 Bad Request
{
"error":{
"code":"INVALID_USER",
"message":"Invalid user"
}
}
Примечание
Тип оповещения передается в параметре notification_type
.
Вебхук | Тип оповещения | Описание |
---|---|---|
Проверка существования пользователя | user_validation |
Проверка существования пользователя в игре. |
Поиск пользователя | user_search |
Получение информации о пользователе по публичному ID пользователя. |
Успешный платеж | payment |
Оповещение об успешном платеже. |
Возврат платежа | refund |
Оповещение об отмене платежа. |
Частичный возврат платежа | partial_refund |
Оповещение о частичном возврате платежа. |
Транзакция отклонена при проверке AFS | afs_reject |
Оповещение об отмене транзакции системой расширенного антифрода. |
Обновление черного списка AFS | afs_black_list |
Оповещение об изменении черного списка AFS. |
Создание подписки | create_subscription |
Оповещение о создании подписки. |
Изменение подписки | update_subscription |
Оповещение о продлении подписки или о смене каких-либо параметров внутри подписки. |
Отмена подписки | cancel_subscription |
Оповещение об отмене подписки. |
Непродлеваемая подписка | non_renewal_subscription |
Оповещение о смене статуса на непродлеваемый. |
Добавление платежного аккаунта | payment_account_add |
Оповещение о добавлении или сохранении платежного аккаунта. |
Удаление платежного аккаунта | payment_account_remove |
Оповещение об удалении платежного аккаунта. |
Проверка пользователя в Веб-магазине | - |
Отправлено из Веб-магазина для проверки существования пользователя в игре. |
Обработка транзакции по выплате | - |
Отправляется, когда транзакция по выплате создана и находится в обработке. |
Завершение транзакции по выплате | - |
Отправляется, когда транзакция по выплате успешно выполнена. |
Персонализация каталога на стороне партнера | partner_side_catalog |
Отправляется, когда пользователь взаимодействует с магазином. |
Успешная оплата заказа | order_paid |
Отправляется, когда заказ оплачен. |
Отмена заказа | order_canceled |
Отправляется, когда заказ отменен. |