X-Frame-Options, запрещающие перенаправление в PayPal
У меня есть платежная система, которая не будет перенаправлять на PayPal из-за ошибки: "Отказ в отображении документа, потому что отображение запрещено X-Frame-Options". Форма публикуется и создается правильный URL-адрес перенаправления, но от запросов PayPal не возвращается ответ:
Это правильно перенаправляет на следующий запрос: https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=xxx
Это не показывает ответа: https://www.sandbox.paypal.com/us/cgi-bin/webscr?cmd=_flow&SESSION=xxx&dispatch=xxx
Если я разрезаю и вставляю первый запрос в браузер, он перенаправляет на paypal, однако при запуске из приложения (в Chrome) я получаю ошибку X-Frame-Options. (или в Firefox, ничего)
6 ответов
Это означает, что Paypal не позволяет вам использовать Paypal в iframe. Вы не должны использовать Payapl в iframe.
У меня та же проблема с Sandbox, и я обнаружил, что она исправлена после удаления всех файлов cookie *.paypal.com.
В моем случае это было несоответствие имени среды [песочница / производство] с clientId
В настоящее время я работаю с PayPal. Сначала вы могли бы подумать: "Эй! Тонны документов! Да!", Но на самом деле это отстой. Тонны документов, которые предполагают, что вы уже знаете, что ищете. Попробуйте следующий код JS (вы должны уже вызывать метод setExpressCheckout и иметь токен):
$(document).ready(function() {
//asynchronously fetch paypal's javascript
jQuery.getScript('https://www.paypalobjects.com/js/external/dg.js', function(){console.debug("javascript loaded");});
});
//the handler that opens the iframe should be the following. This code assumes token variable has already been initalized
var dg = new PAYPAL.apps.DGFlow({trigger:null, expType:"light"});
dg.startFlow('https://www.sandbox.paypal.com/incontext?token=' +token);
Единственное, что мне нужно, - это правильный URL-адрес F***NG для тестирования (среда песочницы).
Кстати, убедитесь, что вы вошли в свою учетную запись песочницы перед тестированием;)
Если вы хотите запустить Express Checkout в iFrame, см. Цифровые товары для Express Checkout: https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_IntroducingExpressCheckoutDG
Техническая команда PayPal должна будет включить его в песочнице, прежде чем вы сможете его использовать.