PayPal Checkout JavaScript:更改货币而不重定向或刷新页面

Posted

技术标签:

【中文标题】PayPal Checkout JavaScript:更改货币而不重定向或刷新页面【英文标题】:PayPal Checkout JavaScript: changing currency without redirecting or refreshing page 【发布时间】:2021-07-11 16:39:33 【问题描述】:

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

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

【问题讨论】:

【参考方案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 的唯一方法,但是如果我们不想那样破解它,他们是否允许使用自定义客户端集成? 你的意思是,写你自己的实现?祝你好运。

以上是关于PayPal Checkout JavaScript:更改货币而不重定向或刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

ReferenceError:当我使用 vuejs 设置 PayPal Checkout 时,未定义 paypal

如何为 PayPal Express Checkout 配置 IPN?

paypal express checkout set paypal费用另加

Paypal:通过 Express Checkout 定期付款,无需用户拥有 paypal 帐户

PayPal Checkout 使用默认设置设置的 PayPal 帐户付款

更改 PayPal Express Checkout 插件中的 paypal 项目名称