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.

Просто добавьте: target="_blank" в форму

В моем случае это было несоответствие имени среды [песочница / производство] с 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 должна будет включить его в песочнице, прежде чем вы сможете его использовать.

Другие вопросы по тегам