В 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 и не уверен, что делать, чтобы исправить эту проблему.