Javascript 使用onOpen()函数填写PayPal订单脚本
我正在尝试在我的站点上实现PayPal SDK,并认为这应该可以实现:Javascript 使用onOpen()函数填写PayPal订单脚本,javascript,html,paypal,Javascript,Html,Paypal,我正在尝试在我的站点上实现PayPal SDK,并认为这应该可以实现: <body onload="writeOrderCode()"> 您没有向我们展示您的函数,或者它在页面DOM中写入了什么,因此很难提供任何具体的指导 但这里有一个有效的例子: function loadAsync(url, callback) { var s = document.createElement('script'); s.setAttribute('src', url)
<body onload="writeOrderCode()">
您没有向我们展示您的函数,或者它在页面DOM中写入了什么,因此很难提供任何具体的指导 但这里有一个有效的例子:
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');
});
如果您需要专门用于此加载的完整软件包,可以使用。请创建一个感谢示例!这并不完全符合我的想法,但可能是一个更好的方法。我需要学习更多关于如何使用点语法以及如何从JS创建HTML对象的知识。如果您能够从一开始就在SDK中包含标记,那么您可能不需要像loadAsync这样的函数。查看您的
函数writeOrderCode(x)
,这毫无意义——您不应该将JS写入这样的元素中,或者引用一个变量,如buttonColor
,如果它在范围内,则填充你的x
角色。你是正确的。我最终发现我可以在按钮定义中使用JS逻辑。我错误地认为在paypal.Buttons({})中添加任何额外的内容
会把事情搞砸。使用按钮描述符和x只是个例子。谢谢你的评论!