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';
}
}