Отслеживание статуса заказа
После совершения покупки в вашем приложении могут выполняться следующие действия:
- отображение статуса заказа в интерфейсе приложения;
- пополнение баланса виртуальной валюты пользователя в результате успешной оплаты;
- начисление купленных предметов пользователю в результате успешной оплаты.
Чтобы реализовать логику этих действий, отслеживайте статус заказа с помощью метода SDK OrderTracking.Instance.AddOrderForTracking
. Передайте в метод следующие параметры:
projectId
— ID проекта из Личного кабинета;orderId
— ID заказа, полученный в результате покупки через корзину, покупки в один клик или покупки за виртуальную валюту;onSuccess
— функция, которая вызывается в случае перехода заказа в статусdone
;onError
— функция, которая вызывается в случае, если сервер Иксоллы возвращает ошибку.
Этот метод инкапсулирует в себя несколько методов отслеживания статуса заказа. Механизм отличается в зависимости от платформы, для которой собирается приложение:
- Для WebGL-сборок отслеживание осуществляется на основе
postMessage
событий виджета платежного интерфейса. Если от виджета платежного интерфейса приходит сообщение об изменении статуса заказа изменен наdone
илиcancel
, отслеживание прекращается.
- Для сборок для других платформ отслеживание осуществляется с помощью простых HTTP-запросов (short-polling) и запросов по протоколу WebSocket. Отслеживание выполняется по следующему алгоритму:
- Устанавливается веб-сокет-соединение.
- Если в течение 5 минут статус заказа не сменился на
done
илиcancel
, веб-сокет-соединение закрывается. Если статус заказа изменен наdone
илиcancel
, отслеживание прекращается. - Отслеживание статуса заказа продолжается с помощью short-polling. Раз в 3 секунды отправляется простой HTTP-запрос статуса заказа. Отслеживание прекращается если:
- статус заказа изменился на
done
илиcancel
; - в течение 10 минут статус заказа не сменился на
done
илиcancel
.
- статус заказа изменился на
Примечание
Если не удалось установить веб-сокет-соединение, статус заказа отслеживается с помощью short-polling.
Дополнительно вы можете реализовать:
- запрос статуса и содержимого заказа с помощью метода SDK
CheckOrderStatus
; - обработку вебхуков на сервере вашего приложения для событий, которые происходят с транзакцией на стороне на стороне Иксоллы.
Была ли статья полезна?
Спасибо за обратную связь!
Ваши мысли и идеи помогут нам улучшить ваш пользовательский опыт.Полезные ссылки
Последнее обновление:
10 октября 2023
Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.