Xsolla отправляет вебхук order_paid
на указанный URL-адрес, когда
выполнены условия:
payment
.В вебхуке order_paid
содержится информация о купленных товарах и
детали транзакции.
Вебхук order_paid
не будет отправлен, если:
payment
не получен.Рекомендуется обеспечить скорость обработки вебхука order_paid
менее 3 секунд.
Ожидаемые коды ответов описаны в разделе Responses. Вы можете использовать другие коды ответов. В зависимости от кода ответа и подключения функциональности автоматического возврата платежа логика обработки вебхука на стороне Xsolla следующая:
Код ответа | Автоматический возврат платежа не включен (по умолчанию) | Автоматический возврат платежа включен |
---|---|---|
400 , 401 , 402 , 403 , 404 , 409 , 422 , 415 |
Нет действий | Автоматический возврат средств пользователю. |
200 , 201 , 204 |
Нет действий | Нет действий |
Другой код или отсутствие ответа на вебхук | Многократная отправка вебхуков через заданный временной промежуток: 2 попытки с шагом 5 минут, 7 попыток с шагом 15 минут, 10 попыток с шагом 60 минут. | Многократная отправка вебхуков через заданный временной промежуток: 2 попытки с шагом 5 минут, 7 попыток с шагом 15 минут, 10 попыток с шагом 60 минут. Если все вебхуки отправлены, а успешный ответ не получен, осуществляется автоматический возврат средств пользователю. |
Для подключения функциональности автоматических возвратов обратитесь к аккаунт-менеджеру проекта или напишите на am@xsolla.com.
notification_type required | string Тип оповещения. | ||||||||||||||||||||||||||||||||||||||
required | Array of objects Список предметов, которые купил пользователь. | ||||||||||||||||||||||||||||||||||||||
Array | |||||||||||||||||||||||||||||||||||||||
required | object Информация о заказе. | ||||||||||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||||||||||
required | object Информация о пользователе. | ||||||||||||||||||||||||||||||||||||||
custom_parameters | object Дополнительная информация. |
Верните, чтобы сообщить об успешной обработке вехбука.
Верните в случае ошибки в предоставленной информации (например, обязательный параметр не передан, или авторизация не прошла).
curl -v 'https://your.hostname/your/uri' \ -X POST \ -H 'Accept: application/json' \ -H 'Content-Type: application/json' \ -H 'Authorization: Signature d09695066c52c1b8bdae92f2d6eb59f5b5f89843' \ -d '{ "notification_type": "order_paid", "items": [ { "sku": "virtual-good-item_test", "type": "virtual_good", "is_pre_order": false, "quantity": 3, "amount": "1000", "promotions": [ { "amount_without_discount": "6000", "amount_with_discount": "5000", "sequence": 1 }, { "amount_without_discount": "5000", "amount_with_discount": "4000", "sequence": 2 } ], "custom_attributes": { "purchased": 0, "attr": "value" } }, { "sku": "virtual-good-item_test_test_new", "type": "bundle", "is_pre_order": false, "quantity": 1, "amount": "1000", "promotions": [] }, { "sku": "gold", "type": "virtual_currency", "is_pre_order": false, "quantity": 1500, "amount": "[null]", "promotions": [] } ], "order": { "id": 1, "mode": "default", "currency_type": "virtual", "currency": "sku_currency", "amount": "2000", "status": "paid", "platform": "xsolla", "comment": null, "invoice_id": "1", "promotions": [ { "amount_without_discount": "4000", "amount_with_discount": "2000", "sequence": 1 } ], "promocodes": [ { "code": "promocode_some_code", "external_id": "promocode_sku" } ], "coupons": [ { "code": "WINTER2021", "external_id": "coupon_sku" } ] }, "user": { "external_id": "id_xsolla_login_1", "email": "gc_user@xsolla.com" } }'