javascript - Mobile Safari (iPad) 中的 PayPal 数字商品快速结帐体验不佳 : popups are opened as tabs

标签 javascript ipad paypal mobile-safari in-app-purchase

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

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

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

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

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

我还研究了 similar in-app payment systems 使用的客户端 (JavaScript) 技术,但那些(可以理解的)也使用弹出窗口。因此,我更喜欢上面描述的第二种解决方案。那个也将涉及更少的工作。

最佳答案

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

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

关于javascript - Mobile Safari (iPad) 中的 PayPal 数字商品快速结帐体验不佳 : popups are opened as tabs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10580195/

相关文章:

Javascript 函数和默认参数,不适用于 IE 和 Chrome

iphone - 如何使用UIViewContentModeAspectFit将图像添加到UIButton?

iphone - 在 iPhone 上安装应用程序时,适用于 iOS 的 Google Analytics SDK 并非针对 armv7s 架构而构建

iphone - Apple 审查中的 iPad 应用程序崩溃 - 无法在模拟器中复制,有崩溃日志

ruby-on-rails - 支付宝支付错误

ios7 - iOS 7 是否支持 Apple pay 或 iOS 中是否有任何其他基于支付的良好 API?

paypal - 付款后重定向回特定网址

javascript - 将 JSON 对象项添加到具有相同类的 DIV

javascript - jalali 日历 for dateTimepicker jquery ui 插件

javascript - semantic-ui:使用 'doubling row' 类交错网格列行?