【问题标题】:PayPal Checkout JavaScript: changing currency without redirecting or refreshing pagePayPal Checkout JavaScript:更改货币而不重定向或刷新页面
【发布时间】:2020-12-08 12:36:07
【问题描述】:

我们的网站有一个结帐流程,如果重定向到 PayPal 进行审批,该流程会中断。此外,我们有不同的货币,因此 PayPal SDK 无法用于我们的目的,因为您需要重新加载才能更改货币。

我们可以构建自己的结帐集成,在新窗口中打开从 API 端接收的 URL,还是我们唯一的选择是使用他们的 SDK?

【问题讨论】:

    标签: paypal


    【解决方案1】:

    更改币种需要重新加载JS SDK,但不需要刷新页面。下面是一个简短的 vanilla JS 函数和使用示例:

    function loadAsync(url, callback) {
      var s = document.createElement('script');
      s.setAttribute('src', url); s.onload = callback;
      document.head.insertBefore(s, document.head.firstElementChild);
    }
    
    loadAsync('https://www.paypal.com/sdk/js?client-id=sb&currency=USD', function() {
      paypal.Buttons({
    
        // Set up the transaction
        createOrder: function(data, actions) {
            return actions.order.create({
                purchase_units: [{
                    amount: {
                        value: '0.01'
                    }
                }]
            });
        },
    
        // Finalize the transaction
        onApprove: function(data, actions) {
            return actions.order.capture().then(function(details) {
                // Show a success message to the buyer
                alert('Transaction completed by ' + details.payer.name.given_name);
            });
        }
    
      }).render('body');
    });
    

    另外,paypal-js 包最近发布并且做同样的事情


    由于您提到了具有服务器端 API 集成,因此您需要使用 https://developer.paypal.com/demo/checkout/#/pattern/server 的前端代码并将其与服务器上的两条路由配对,一条用于“创建订单”,一条用于“捕获”订单”,记录在 https://developer.paypal.com/docs/business/checkout/server-side-api-calls/#server-side-api-calls 。这些路由应该只输出 JSON 数据(没有 HTML 或文本)

    【讨论】:

    • 嘿!谢谢您的回答。我认为这是使用他们的 sdk 的唯一方法,但是如果我们不想那样破解它,他们是否允许使用自定义客户端集成?
    • 你的意思是,写你自己的实现?祝你好运。
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 2015-07-18
    • 2012-07-07
    • 2013-03-21
    • 1970-01-01
    • 2013-08-05
    • 2015-03-11
    相关资源
    最近更新 更多