【问题标题】:X-Frame-Options forbidding redirect to PayPalX-Frame-Options 禁止重定向到 PayPal
【发布时间】:2011-11-08 11:04:27
【问题描述】:

我的支付系统不会重定向到贝宝,因为错误:“拒绝显示文档,因为 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 中,什么都没有)

【问题讨论】:

    标签: php paypal x-frame-options


    【解决方案1】:

    在我的情况下,环境名称 [sandbox/production] 与 clientId 不匹配

    【讨论】:

      【解决方案2】:

      我在使用 Sandbox 时遇到了同样的问题,我发现在删除所有 *.paypal.com cookie 后问题已得到解决。

      【讨论】:

        【解决方案3】:

        只需添加:target="_blank" 即可

        【讨论】:

        • 为我工作,简单但有效
        【解决方案4】:

        我目前正在使用贝宝。起初,您可能会想“嘿!大量的文档!耶!”,但实际上很烂。大量文档假设您已经知道要查找的内容。试试下面的 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);
        

        我在这里唯一需要的是用于测试的 F***NG 正确 URL(沙盒环境)。

        顺便说一句,请确保您在测试前登录到您的沙盒帐户;)

        【讨论】:

          【解决方案5】:

          如果您想在 iFrame 中运行 Express Checkout,请参阅用于 Express Checkout 的数字商品:https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_IntroducingExpressCheckoutDG

          您需要先由 PayPal 的技术团队在沙盒中打开它,然后才能使用它。

          【讨论】:

            【解决方案6】:

            这意味着 Paypal 不允许您在 iframe 中使用 Paypal。您不应该在 iframe 中使用 Payapl。

            【讨论】:

            • 以前可以,现在突然不行了
            • 也许 Paypal 刚刚添加了这个 X-Frame-Options 标头
            • 所以我应该能够切换到旧版本的贝宝,它应该可以工作吗?我也试过了。还是出于安全目的,他们将其添加到所有版本中?
            • 是的,这显然是一种安全措施,这是一种防止点击劫持和类似行为的保护措施。
            • 但这会破坏任何已经存在 iframe 的网站..它必须是特定于版本的
            猜你喜欢
            • 2023-03-29
            • 2011-10-03
            • 1970-01-01
            • 2014-03-31
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多