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¤cy=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 帐户