【问题标题】:PayPal express checkout from Angular app?来自 Angular 应用程序的 PayPal 快速结帐?
【发布时间】:2014-08-30 19:05:17
【问题描述】:

我正在尝试使用 PayPal 的经典 express checkout API 从 Angular 应用程序完成 PayPal 付款。在此结帐流程中,我获得了一个 URL,以将买家发送到以授权他们在 PayPal 网站上的付款。当我请求该 URL 时,PayPal 会返回 302 响应并尝试重定向买家。但是,当浏览器尝试重定向时,我可以理解地收到此错误:

XMLHttpRequest 无法加载“PAYPAL_SITE”。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'MY_HOST' 不允许访问。

解决这个问题的最佳方法是什么?我看到 PayPal 还有一个更新的 RESTful API。如果此 API 支持 CORS,切换到该 API 会解决问题吗?我的 Angular 配置有什么我应该改变的吗?根据我的阅读,PayPal 服务器似乎需要某些标头来允许我的主机访问,但我不太确定......

【问题讨论】:

    标签: angularjs paypal


    【解决方案1】:

    我解决此问题的方法是将用户从 Angular 应用程序发送到“虚拟”页面,该页面立即向 PayPal 站点发出(非 XML)HTTP 请求。我将所需的数据作为 URL 中的参数传递。

    在你的 js 中:

    window.location.href = "dummypage.html" + build_params();
    

    假设您在控制器中使用某种 MVC 框架:

    index() {
        paypalUrl = getParams(paypalUrl);
        redirect_to(paypalUrl);
    }
    

    当用户确认付款时,他们会被重定向回 Angular 应用以完成交易。我不认为这是一个最佳解决方案,使用起来感觉很乱,但我还没有想出更好的方法!

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 2014-12-07
      • 2013-03-05
      • 2017-11-22
      • 1970-01-01
      • 2011-08-10
      • 2011-06-16
      • 2016-07-10
      • 2017-07-15
      相关资源
      最近更新 更多