sandymca94 Ответов: 0

В PayPal событие checkout.js всплывающее окно и oncancel срабатывает автоматически в браузере Edge


Описание :

После нажатия кнопки и завершения загрузки всплывающего окна oncancel немедленно вызывается, и наложение исчезает, но всплывающее окно остается открытым.

Я нашел какую - то ссылку в GitHub- https://github.com/paypal/paypal-checkout-components/issues/750 и уже закрыли, сказав нам изменить наши настройки интернета/интрасети и доверенные сайты. Это может работать для IE, но не для Edge, и мы также не можем сказать клиентам, чтобы они изменили настройки своего браузера перед размещением заказа у нас.

Используемый код (такой же, как https://developer.paypal.com/docs/archive/checkout/how-to/customize-flow/#[^], только добавлены onCancel и onError):

<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">

<script type="text/javascript" src="https://www.paypalobjects.com/api/checkout.js"></script>

 

paypal.Button.render({
//env: 'sandbox', // sandbox | production
env: 'sandbox',
client: {
//sandbox: 'AZDxjDScFpQtjWTOUtWKbyN_bDt4OgqaF4eYXlewfBP4-8aqX3PiV8e1GWU6liB2CUXlkA59kJXE7M6R',
sandbox: '@Model.ConfigData.PaypalClientId',
production: 'xxxxxx'
},
// Specify the style of the button
style: {
//layout: 'vertical', // horizontal | vertical
size: 'responsive', // medium | large | responsive
shape: 'rect', // pill | rect
color: 'blue' // gold | blue | silver | white | black
},

// Show the buyer a 'Pay Now' button in the checkout flow
commit: true,

// payment() is called when the button is clicked
payment: function (data, actions) {
debugger;
// Make a call to the REST api to create the payment
return actions.payment.create({
payment: {
transactions: [
{
amount: { total: '@Model.CreditData.PaymentAmount', currency: 'USD' },
//invoice_number: 'TransactionID',
description: 'Your payment reference number is :' + 'TransactionID',
reference_id: 'InvoiceReference'
}
],
redirect_urls: {
return_url: window.location.protocol.replace(":", "") + "://" + window.location.host.replace("/", "") + '/' + window.location.pathname.replace("/", "") + '?Success=True&RawURL=' + 'returnValue',
cancel_url: window.location.protocol.replace(":", "") + "://" + window.location.host.replace("/", "") + '/' + window.location.pathname.replace("/", "") + '?Success=False'
}
}
});
},

// onAuthorize() is called when the buyer approves the payment
onAuthorize: function (data, actions) {
var return_url = '';
// Make a call to the REST api to execute the payment
actions.payment.execute().then(function () {
//console.log(data);
return_url = data.returnUrl;
});

actions.payment.execute().then(function (res) {
if (res.state === 'approved') {

}
else {

}
}).catch(function (error) {
console.log('onCancel');
console.log(error);
});
},
// Pass a function to be called when the customer cancels the payment
onCancel: function (data, actions) {
console.log('onCancel');
console.log(data);
},
onError: function (error) {
console.log('onError');
console.log(error);
}

}, '#paypal-button-container');

 

 

<div id="paypal-button-container"></div>


Ошибка -
Ссылка - http://i66.tinypic.com/34oyhw6.png[^]

Что я уже пробовал:

Один и тот же код работает во всех браузерах, но этот же код не работает в браузере Edge и не уверен, что делать, чтобы исправить эту проблему.

0 Ответов