arrow_back_iosВопросы
help

Как проверить состояние заказа при обработке платежа на своем сайте?

check_circle
1. Вам понадобится получить userId и checkStateToken.
В API платежей мы передаем их в первом запросе на создание платежа. Вы можете сразу же их вставить в параметры своей платежной страницы.
В случае использования PayAnyWay мы передаем эти параметры на указанную вами страницу, как bukzaUserId и bukzaCheckStateToken.
2. На вашей странице обработки платежа добавьте скрипт:
<script src="https://app.bukza.com/static/js/bukzaCheckState.js"></script>
3. После загрузки документа выполните:
var bukzaCheckState = new BukzaCheckState({
    userId: 12345,
    token: 'eyJVc2VySWQiOjIsIk9yZGVyS...Ws9In0%3D',
    handler: function (result) {
        console.log(result); //{isFinished:true, isValid:true, amount:99.99}
    }
});
bukzaCheckState.bind();
Этот скрипт запустит праверку статуса заказа. Каждые 10 секунд он будет получать результат проверки и вызывать ваш обработчик (handler). В обработчике вы сможете проверить результат и выполнить требуемое действие: вывести ошибку, вернуть пользователя на предыдущую страницу или показать страницу об успешном завершении заказа.
Если значения userId и token не указаны, то скрипт возьмет их из параметров страницы: bukzaUserId и bukzaCheckStateToken.

Пример кода

Реальный пример использования вы можете найти в исходниках страницы https://app.bukza.com/paw.html. Там используется такой код обработчика:
handler: function (result) {
    if (result) {
        if (result.isFinished) {
            if (result.isValid) {
                //order is completed succesfully
                window.location.href = 'https://app.bukza.com/result.html?result=success&culture=ru';
            } else {
                //order is completed but for some reason it is not valid
                window.location.href = 'https://app.bukza.com/result.html?result=warning&culture=ru';
            }
        } else {
            if (result.isValid) {
                if (result.amount != window.amount) {
                    //amount to pay has changed, going to the previous page
                    window.history.go(-1);
                } else {
                    //everything is ok, waiting for payment
                }
            } else {
                //order became invalid, going to the previous page
                window.history.go(-1);
            }
        }
    }
    else {
        window.location.href = 'https://app.bukza.com/result.html?result=error&culture=ru';
    }
}
Не нашли ответа на ваш вопрос?
Задайте его нам на
mail_outline support@bukza.com