Начисление покупок пользователю
Реализуйте в вашем приложении начисление покупок пользователю, используя полученную в вебхуках информацию от Xsolla о деталях транзакции и купленных товарах.
На стороне Xsolla настроено 2 варианта отправки вебхуков при покупке и возврате товаров — информация с данными платежа и транзакции и информация о купленных товарах может приходить отдельно или может быть объединена в один вебхук.
Подробнее о вариантах получения вебхуков
Получение информации в объединенных вебхуках:
Если вы зарегистрировались в Личном кабинете после 22 января 2025 г., вы получаете всю информацию в вебхуках Успешная оплата заказа (order_paid
) и Отмена заказа (order_canceled
). В этом случае вам не требуется обрабатывать вебхуки Успешный платеж (payment
) и Возврат платежа (refund
).
Получение информации в отдельных вебхуках:
Если вы зарегистрировались в Личном кабинете до 22 января 2025 г. включительно, вы получаете вебхуки:
- Успешный платеж (
payment
) и Возврат платежа (refund
) с информацией о данных платежа и детали транзакции. - Успешная оплата заказа (
order_paid
) и Отмена заказа (order_canceled
) с информацией о купленных товарах.
Вам необходимо обрабатывать все поступающие вебхуки.
Для перехода к новому варианту с получением объединенных вебхуков обратитесь к персональному менеджеру проекта или напишите на [email protected].
Для полноценной работы внутриигрового магазина и управления платежами, необходимо реализовать обработку основных вебхуков:
Если вы используете персонализацию каталога товаров, реализованную на стороне вашего приложения, настройте обработку вебхука Персонализация каталога на стороне партнера.
- Успешный платеж, Успешная оплата заказа и Проверка существования пользователя, если вы получаете отдельные вебхуки.
- Успешная оплата заказа и Проверка существования пользователя, если вы получаете объединенные вебхуки.
Настройка вебхуков в Личном кабинете
- В проекте в Личном кабинете перейдите в раздел Настройки проекта > Вебхуки.
- В поле Сервер для вебхуков укажите URL-адрес вашего сервера для получения вебхуков в формате
https://example.com
. Вы также можете ввести URL-адрес из инструмента для тестирования вебхуков. - Секретный ключ проекта для подписи вебхуков генерируется по умолчанию. Если вы хотите изменить его, нажмите значок обновления.
- Нажмите Получать вебхуки.
Тестирование вебхуков в Личном кабинете
Если вебхуки настроены успешно, ниже блока настройки вебхуков отобразится блок тестирования вебхуков.
Раздел тестирования в Личном кабинете различается в зависимости от сценария получения вебхуков.
При отсутствии реальных значений допускается ввод произвольных значений.
Также протестировать отправку вебхуков можно при проверке процесса оплаты в тестовом или боевом окружении. Протестировать вебхук Возврат платежа можно только в боевом окружении.
Отправка ответов на вебхук
Чтобы подтвердить получение вебхука, ваш сервер должен вернуть:
200
,201
, или204
HTTP-код в случае успешного ответа.400
HTTP-код с описанием проблемы, если указанный пользователь не был найден или если передана недействительная подпись.
Ваш обработчик вебхуков также может возвращать код 5xx
при временных проблемах на вашем сервере.
Следующие шаги
Настройка информации о товарах в вебхуках
Вы можете настроить, какие данные о товарах передаются в вебхуках Успешная оплата заказа и Отмена заказа в массиве items.
Подключение передачи дополнительных параметров
Подключите передачу дополнительных параметров, которые показывают:
- является ли товар бесплатным (
is_free
); - является ли товар бонусом (
is_bonus
); - входит ли товар в состав бандла (
is_bundle_content
).
Чтобы получать эти параметры, переключите вебхуки на версию 2
с помощью метода API Обновление информации о настройках вебхуков. В версии 1
(используется по умолчанию) эти параметры отсутствуют.
Пример массива items с дополнительными параметрами:
- json
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 {
15 "sku": "com.xsolla.gold_1",
16 "type": "virtual_currency",
17 "is_pre_order": false,
18 "is_free": false,
19 "is_bonus": false,
20 "is_bundle_content": true,
21 "quantity": 1500,
22 "amount": "[null]",
23 "promotions": []
24 }
25 ],
Отключение передачи содержимого бандла
По умолчанию в вебхуках все товары из бандла передаются как список отдельных товаров, входящих в бандл. Вы можете получать только бандл без его содержимого.
В этом случае товары, входящие в состав бандла, не будут включены в массив items. В приведенном выше примере будет исключен товар с SKU com.xsolla.gold_1
, являющийся частью бандла.
Пример массива items без содержимого бандла:
- json
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 ],
Чтобы отключить передачу содержимого бандла, обратитесь к персональному менеджеру проекта или напишите на [email protected].
Полезные ссылки
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.