Отслеживание статуса заказа
После совершения покупки в вашем приложении могут выполняться следующие действия:
- отображение статуса заказа в интерфейсе приложения;
- пополнение баланса виртуальной валюты пользователя в результате успешной оплаты;
- начисление купленных предметов пользователю в результате успешной оплаты.
Чтобы реализовать логику этих действий с помощью SDK, вы можете отслеживать статус заказа следующими способами:
Подписка на изменение статуса заказа
Чтобы подписаться на изменения статуса заказа, используйте метод SDK getOrderStatus
из библиотеки Store. Передайте в метод следующие параметры:
listener
— объект слушателя типаOrderStatusListener
;orderId
— ID заказа, полученный в результате покупки через корзину, покупки в один клик или покупки за виртуальную валюту.
Пример вызова метода XStore.getOrderStatus:
- kotlin
XStore.getOrderStatus(object : OrderStatusListener() {
override fun onStatusUpdate(status: OrderResponse.Status) {
if(status == OrderResponse.Status.DONE) {
Log.d("MainActivity", "Success")
}
}
override fun onFailure() {
Log.d("MainActivity", "Failure")
}
}, orderId)
Мы рекомендуем вызывать метод XStore.getOrderStatus
вместе с открытием платежного интерфейса.
Этот метод инкапсулирует в себя несколько методов отслеживания статуса заказа. Отслеживание выполняется по следующему алгоритму:
- Устанавливается веб-сокет-соединение.
- Если соединение установлено и статус заказа изменен на
done
илиcancel
, отслеживание прекращается. Если не удалось установить веб-сокет-соединение либо в ответе приходят некорректные данные, статус заказа отслеживается с помощью short-polling. - Отслеживание статуса заказа продолжается с помощью short-polling. Раз в 3 секунды отправляется простой HTTP-запрос статуса заказа. Отслеживание прекращается, когда статус заказа изменится на
done
илиcancel
.
Запрос статуса заказа
Вы также можете запрашивать статус заказа например, при перенаправлении пользователя в приложение из платежного интерфейса. Используйте статусы, возвращаемые классом XPayments
, чтобы отслеживать закрытие платежного интерфейса.
XPayments
, показывают, завершил ли пользователь покупку в платежном интерфейсе, и не соответствуют статусам платежной транзакции.Класс XPayments
может вернуть следующие статусы:
XPayments.Status.COMPLETED
— пользователь завершил оплату и вернулся в приложение;XPayments.Status.CANCELLED
— пользователь закрыл платежный интерфейс, не завершив оплату;XPayments.Status.UNKNOWN
— при оплате произошла ошибка, например банк отклонил транзакцию.
Для запроса текущего статуса платежной транзакции используйте метод getOrder
из библиотеки Store. В качестве параметра передайте ID заказа, полученный в результате покупки через корзину, покупки в один клик или покупки за виртуальную валюту.
Была ли статья полезна?
Оценить страницу
В другой раз
Спасибо за обратную связь!
Полезные ссылки
Последнее обновление: 26 марта 2024Нашли опечатку или ошибку в тексте? Выделите ее и нажмите Ctrl+Enter.