При использовании кнопок Smart Payment после закрытия всплывающего окна платежа происходит задержка 3-4 секунды. После закрытия окна транзакции требуется 3-4 секунды для запуска события onApproval, которое получает идентификатор транзакции, необходимый для обработки заказа.
Это вызывает проблемы , так как покупатель может закрыть окно тем временем (поскольку кажется, что ничего не происходит), и событие никогда не получено, поэтому заказ не обработан (хотя и оплачен).
Вот код:
paypal.Buttons({
createOrder: function(data,actions) {
// do some stuff
return fetch('/createOrder', {
method: 'post',
headers: {
'content-type': 'application/json'
}
}).then(function(res) {
return res.json();
}).then(function(data) {
return data.orderID;
});
},
// onApprove will be fired 3-4 second AFTER the popup of transaction closes
onApprove: function(data, actions) {
return fetch('captureOrder', {
method: 'post',
headers: {
'content-type': 'application/json'
},
body: JSON.stringify({
orderID:data.orderID
})
}).then(function(res) {
return res.json();
}).then(function(details) {
});
}
}).render(selector);
Есть ли способ закрыть всплывающее окно ПОСЛЕ срабатывания четности? В противном случае единственным решением было бы создать оверлей с помощью счетчика (или чего-то подобного), который исчезнет после получения onApproval. Но это громоздко. Всплывающее окно действительно не должно закрываться до запуска события.