Получение статуса заказа пользователя
Получение статуса заказа пользователя
Существуют следующие способы получить статус заказа пользователя:
Получение статуса заказа на стороне сервера с помощью вебхуков
После того как вы настроили обработку вебхуков на вашем сервере, вы можете использовать их для получения статуса заказа и информации о заказе.Получение статуса заказа на стороне клиента с помощью WebSocket API или IGS API
Если у вас нет своего сервера или вы используете логику обработки покупок на стороне клиента, вы можете использовать следующие способы:Получение статуса заказа на стороне клиента с помощью веб-сокет-соединения
Решение предусматривает использование веб-сокетов для получения статусов заказа без получения подробной информации о самом заказе. Этот способ является предпочтительным: между клиентом (например, вашим сайтом или мобильным приложением) и сервером Xsolla устанавливается только одно подключение, поэтому нет дополнительной нагрузки ни на клиент, ни на сервер.
Выполните следующие действия:
- Для того чтобы веб-сокет-сервер Xsolla и ваш клиент могли идентифицировать сообщения со статусом заказа, создайте соединение:
- javascript
const client = new Centrifuge(
connectionURL,
{
data: {
user_external_id: user_external_id,
auth: auth,
project_id: project_id
}
}
)
connectionURL - wss://ws-store.xsolla.com/connection/websocket
auth - user JWT token
- Чтобы получать новые сообщения о статусах заказов, подпишитесь на события с помощью функции
client.on
:
- javascript
client.on('publication', (ctx) => {
//handle the status
});
- Установите соединение:
- javascript
client.connect()
- Чтобы получать историю изменений статусов заказов, подключите метод API history method.
- javascript
client.on('subscribed', function (ctx) {
client.history(ctx.channel, { limit: -1, since: { offset: 0 }, reverse: false }).then(function (resp) {
resp.publications.forEach((ctx) => {
/handle the status
});
}, function (err) {
//handle the status
});
});
Пример тела сообщения:
- javascript
{
order_id: 59614241,
status: 'new'
}
Возможны следующие статусы заказа:
New
— заказ создан и еще не оплачен.Paid
— заказ оплачен.Done
— заказ полностью доставлен (в том числе отправлены все чеки, выполнены доставки на стороне Xsolla, внешних платформ и т.д.).Canceled
— заказ отменен, оплата возвращена пользователю.
Рекомендации при работе с веб-сокетами:
- Установите максимальное время ожидания ответча через веб-сокет — 5 минут.
- Устанавливайте соединение при открытии платежного интерфейса.
- Прерывайте соединение после получения финального статуса заказа:
Canceled
илиDone
. - По истечении времени жизни веб-сокета или при возникновении проблем с соединением используйте простые запросы.
Простые запросы (short-polling)
Чтобы получить детальную информацию о товарах в заказе после перехода в нужный статус, используйте API-метод Получение заказа.
ПримечаниеИспользуется периодический опрос статуса заказа — простой HTTP-запрос, который получает текущий статус заказа, а также информацию по нему. Рекомендуемая задержка между запросами — 3 секунды.Последнее обновление: 8 ноября 2024Была ли статья полезна?Спасибо за обратную связь!Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.