【问题标题】:Why is PayPal not working inside a WinRT WebView control为什么 PayPal 在 WinRT WebView 控件中不起作用
【发布时间】:2023-03-21 23:24:01
【问题描述】:

我正在编写一个 Windows 8 应用,用户可以在其中进行应用内购买。我们的客户端为我们提供了一个 REST API。基本上我从这个 REST API 获取产品信息,如果用户选择购买产品,我会告诉 REST API 开始交易。

因此,我收到了支付交易的 PayPal URL。我正在使用 WinRT 中内置的 WebView 控件导航到该 URL。不幸的是,PayPal 网站在 WebView 控件中的行为不正常。当我登录 PayPal 时,我可以在其中支付产品费用的购买概览页面已加载,但一两秒后 WebView 重新加载,我再次进入登录页面。

起初我认为我的应用程序存在特定问题,所以我开始了一个新的 vanilla 项目,它只托管一个导航到 PayPal URL 的 WebView 控件(没有其他交互或任何东西)。但我还是得到了同样的结果。

如果我在其他浏览器(例如 Firefox、Chrome、Internet Explorer 10 或 Metro Style Internet Explorer)中尝试使用 PayPal URL,一切正常,但我无法重现该错误。所以我猜WebView 控件有问题。

现在我想知道是否其他人也有同样的问题,您能否给我一些关于如何解决这个问题的建议?

【问题讨论】:

  • 如果 Paypal 允许任何可以窃听交易的包装器,我会感到惊讶。
  • 窃听到底是什么意思?我可以将 JavaScript 注入网站吗?好吧,我可以用任何主流浏览器做到这一点
  • 有趣。您可以将 URL 调整为 paypal.com/cgi-bin/…> 的形式,看看它是否有效?
  • 即使我将 URL 调整为 paypal.com/cgi-bin/... 的形式,我也会得到相同的结果:我登录并在一两秒后再次注销。
  • @stark 您可以使用 fiddler 或任何调试代理轻松完成此操作(或中间人攻击或或或或或),但我绝对可以看到“想要”这样做的意义,尽管在实践中,它可以毫不费力地被拦截

标签: windows webview paypal windows-runtime


【解决方案1】:

这个开源项目旨在与 PayPal for WinRT 集成 http://paypal.github.io/Windows8SDK/

【讨论】:

  • 我也找到了那个项目,但不幸的是,它需要我的客户重写 REST API 并且我们来实现整个 PayPal 交易。由于我们的项目将在几天后到期,这对我们来说是不可行的。因此,我们删除了 PayPal 作为支付提供商。
【解决方案2】:

我联系了一位 PayPal 宣传员,我们发现问题可能在于 WebView 正在发送它自己的用户代理字符串。 PayPal 拒绝使用WebView,因为程序员可能会将 JavaScript 注入其中(例如,用于调用支付按钮或窃听客户数据)。所以我猜@stark 是对的。正如我已经告诉 @Adam Tuliper 的那样,我们从支持的支付提供商列表中删除了 PayPal。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-30
    • 2020-11-22
    • 1970-01-01
    • 2016-01-24
    • 2017-10-10
    • 2021-05-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多