4

我一直在我的 (HTML5) 网络应用程序中实施PayPal Digital Goods Express Checkout,以启用额外应用程序内容的“应用程序内”购买。在我的桌面浏览器(Chrome、Safari、Firefox)中,数字商品流运行没有问题。在该流程中,弹出窗口在某些时候打开,例如,当用户单击登录按钮或使用信用卡付款的按钮时(即没有贝宝帐户)。对于桌面浏览器,弹出窗口没有问题。但是,在我的 iPad 2 上的 Mobile Safari 中,弹出窗口始终作为(新)选项卡打开, 即使包含宽度、高度等的属性字符串被传递给 JavaScript window.open() 命令。这使得无法实现 PayPal Digital Goods Express Checkout 并在桌面浏览器和移动 Safari 中获得良好的用户体验。当 Web 应用程序在 iPad 上全屏运行(使用主屏幕上的图标)时,打开弹出窗口变得更加成问题(或不可能)。

在尝试解决我的问题时,我提出了以下选项,但都没有带来令人满意的结果:

  • 自定义支付流程。当然这在某种程度上是可能的,但是在将用户重定向到强制用户登录到 PayPal 的“incontext”快速结帐页面之后,定制是我无法控制的(据我所知)。例如,我无法自定义登录过程本身并使其在 iframe(而不是弹出窗口)中工作。如果有一些高级 API 命令我可以在服务器端使用我自己的(iframed)登录表单让用户自己登录到 PayPal,那就太酷了,但这似乎太牵强了。

  • 使弹出窗口在 Mobile Safari 中按预期工作,最好在全屏运行 Web 应用程序时也是如此。我认为 Mobile Safari 将新窗口作为选项卡打开并不奇怪(还有其他浏览器可以这样做)。我确实认为使用 window.open 和定义窗口位置和尺寸的属性字符串从 JavaScript 打开的弹出窗口作为选项卡打开是很奇怪的。有谁知道如何让 Mobile Safari 正常打开此类弹出窗口,而无需用户更改某些浏览器设置?

为了证明我的问题(并表明我不是唯一面临它的人,尽管该网站的所有者可能不知道它;-),请使用 iPad 访问digitalmagazine.autosport.com并单击“使用 PayPal 付款”按钮在页面的左上角。单击 PayPal iframe 中的登录按钮。该站点消失,登录页面(应该在弹出窗口中打开以获得“应用内”体验)打开整个页面。

我还研究了类似应用内支付系统使用的客户端 (JavaScript) 技术,但那些(可以理解)也使用弹出窗口。因此,我更喜欢上面描述的第二种解决方案。这也将涉及更少的工作。

4

1 回答 1

2

虽然 PayPal 支持移动平台,但您需要进行一些更改才能在 iOS 和其他移动操作系统上完全实现它。您将在此处找到 PayPal 移动概述: https ://cms.paypal.com/us/cgi-bin/?cmd=_render-content&content_ID=developer/e_howto_api_ECOnMobileDevices

该过程首先将 Express Checkout 流程中的重定向命令更改为 _expresscheckout-mobile,然后逐步完成完整实施的附加要求列表。仔细阅读文档,因为它对支持的 NVP 字段可能有点挑剔。

于 2012-05-14T10:40:31.643 回答