iframe - PayPal 与基于 iframe 的购物车集成

标签 iframe paypal framebusting

我们使用 PayPal 的 Payments Pro NVP API 在我们的网站上提供无缝的信用卡和 Paypal 处理。我们创建了一个基于 iframe 的购物车小部件,我们的客户将其放在他们的 网站上,以便他们的用户可以购买商品并通过我们的 Paypal 帐户付款。

虽然信用卡交易工作正常,但当用户尝试使用他们的 PayPal 帐户付款时,我们发现了问题。该 API 在单击 PayPal Logo 时使用重定向,但随后 PayPal 的代码似乎运行了一个 framebusting 脚本,交易无法继续。

我正在寻求有关如何处理希望通过 iframe 使用 PayPal 付款的用户的建议或示例代码。一种选择是弹出一个新窗口,但这样会使设计出现问题,因为用户可以在该窗口和包含 iframe 的窗口之间切换,并且可以想象使购物车与 PayPal 窗口显示的内容不同步。

最佳答案

以上两个答案都是正确的。但是,PayPal 技术支持提供了一套更详尽的说明,我在下面提供了这些说明。希望他们能帮助其他人。

修改您的 SetExpressCheckout 调用,使 RETURNURL 和 CANCELURL 参数指向一个特殊的返回页面,该页面将为您处理关闭弹出窗口并继续正常的结帐过程(稍后会详细介绍)。

接下来,修改将买家重定向到 PayPal 网站的脚本。通常,此脚本会向浏览器返回“302 Found”(或类似)响应,告诉浏览器它应该遵循重定向到其他页面。 (在 PHP 中,这通常是通过“header”函数完成的——例如 header(“Location: https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=$token”);。)相反,此脚本应发出以下 HTML/JavaScript 代码(将“TOKEN”替换为您从 PayPal 收到的 token )。这将打开一个弹出窗口,买家可以在其中继续 PayPal 上的结帐流程。您可以根据需要插入其他文本,以向买家表明他们应该使用弹出窗口来完成结帐。为避免弹出窗口阻止程序出现问题,您可以在页面上创建一个链接或按钮,向买家指示他们应单击该链接/按钮以继续,并将此代码用于对象的“onClick”处理程序。

<script type="text/javascript"> window.open("https://www.paypal.com/cgi-bin/webscr?cmd=_express-checkout&token=TOKEN","_blank","width=1024,height=768,location=1,resizable=1,scrollbars=1,status=1",true); </script>

现在,创建一个新页面来执行以下代码(或类似代码——此代码基于 PHP,根据您使用的语言进行必要的调整)。此代码将关闭弹出窗口并在您现有的 iframe 中继续结帐过程。 SetExpressCheckout 调用的 RETURNURL 参数应指向此页面。将“paypalreturn.php”替换为您当前用于处理从 PayPal 返 repo 物车的买家的脚本。

<html>
<body>
<script type="text/javascript">
window.opener.location="http://www.regattacentral.com/paypalreturn.php?token=<? echo $_REQUEST["token"]; ?>&PayerID=<? echo $_REQUEST["PayerID"]; ?>";
window.close();
</script>
</body>
</html>

最后,为您的 CANCELURL 处理程序重复此步骤。

• 购买在 iframe 内完成,并显示购买的交易 ID。

关于iframe - PayPal 与基于 iframe 的购物车集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7290847/

相关文章:

javascript - iframe 仅在 firefox 上显示不正确?

php - Braintree 放置在 UI 字段验证中

android - Paypal UNAUTHORIZED_PAYMENT

Paypal 按钮集成传递 session 变量

javascript - 如何阻止框架破坏程序破坏 WordPress 定制器页面?

javascript - Frame Buster Buster ...需要破坏代码

javascript - 通过访问页面源代码防止帧破坏

javascript - 如何使用javascript将iframe高度设置为100%

javascript - 像 hidemyass 这样的代理网站如何让 Google 在 iframe 中加载?

javascript - TinyMCE 4 自定义插件 - 从 iframe 获取值(value)