5

我有一个使用 Javascript/HTML 的 Windows 8 应用程序,并且在 iframe 中我有一个 Paypal 表单:

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="on0" value="Pages">
<select name="os0">
    <option value="10">$1.95</option>
    <option value="25">$2.95</option>
</select>
<input type="hidden" name="currency_code" value="USD">
<input type="hidden" name="encrypted" value="[removed]">
<input type="image" src="/btn_buynow_LG.gif" border="0" name="submit" alt="">
</form>

此表单在包括 IE10 在内的所有浏览器中都可以正常工作,但是当从 Windows 8 应用程序的 iframe 中提交时,它会将用户引导至 Paypal 主页。这通常表明表单存在问题。我尝试过托管 Paypal 按钮、加密的、未加密的按钮,它们都表现出相同的行为。只有当我从 Windows 8 应用程序中提交此表单时,它才会转到 Paypal.com 主页。

我还尝试将每个 URL 添加到我的清单中作为允许的 URL:

<ApplicationContentUriRules>
<Rule Match="http://example.com" Type="include" />
<Rule Match="http://*.example.com" Type="include" />
<Rule Match="http://paypal.com" Type="include" />
<Rule Match="http://*.paypal.com" Type="include" />
<Rule Match="https://paypal.com" Type="include" />
<Rule Match="https://*.paypal.com" Type="include" />
</ApplicationContentUriRules>

我尝试添加/删除沙盒属性并添加所有属性组合,如下所示:

<iframe sandbox="allow-same-origin allow-top-navigation allow-forms allow-scripts allow-popups" src="http://example.com/paypalbtn.html"></iframe>

如果我删除target="_blank"Windows 8 应用程序将导航到黑屏并挂起。我被迫 alt-tab 并关闭应用程序。我认为这是表单POST到另一个进程中的新窗口的问题。

如何从 Windows 8 应用程序的 iframe 中启动 Paypal?

需要表格 POST 吗?我现在意识到表单 GET 有效。

4

3 回答 3

2

当从 Windows 8 应用程序中的 iframe 启动时,Paypal 将阻止表单 POST 到新窗口。结果是您看到的是 Paypal 主页而不是采购订单表格。

我可以确认,只需将表单方法切换为GET并使用 atarget="_blank"即可完美地工作,没有问题:

 <form action="https://www.paypal.com/cgi-bin/webscr" method="get" target="_blank">

在 iframe 中解决此问题的另一种方法是在文本或图像周围使用标准锚标记并手动创建 URL,如下所示:

<a href="https://www.paypal.com/cgi-bin/webscr?custom=[custom info]&item_name=[URL encoded name]&item_number=[num]&amount=9.95&currency_code=USD&cmd=_xclick&business=[paypal email address]&return=[URL encoded URL]">Buy Now</a>

这个答案的功劳归于这个关于Paypal 链接而不是按钮的页面。

于 2013-01-03T03:22:08.970 回答
0

我不认为贝宝允许 iframe 支持。他们最有可能使用这个:

X 框架选项

它允许他们检测页面是否在 iframe 中呈现,如果是,则阻止它加载..(又名显示空白页面)就像你正在经历的那样。

没有办法解决这个问题。

于 2012-12-31T04:56:15.803 回答
0

我在使用 PayPal 和 Windows Store 应用时遇到了类似的问题。我刚刚在这个帖子中发布了我对这个问题的解决方案:

带有弹出窗口的 Windows 应用商店 HTML 应用

于 2013-12-18T09:22:19.390 回答