PayPal签出在ajax之后动态更新购物车总数
我有一个购物网站,我正在转换成Ajax。它有一个购物车项目列表 在页面加载中,PayPal按钮设置正确,并传入购物车总数。然而,现在我有了一个Ajax购物车,我需要在购物车发生变化时更新购物车总数 如果我再次调用paypal.Button.render函数,我会得到另一个按钮 因此,我需要删除旧按钮并重建,或者调用一些东西来更新总数 谁能给我指出正确的方向吗 这是我设置按钮的代码PayPal签出在ajax之后动态更新购物车总数,ajax,paypal,checkout,totals,Ajax,Paypal,Checkout,Totals,我有一个购物网站,我正在转换成Ajax。它有一个购物车项目列表 在页面加载中,PayPal按钮设置正确,并传入购物车总数。然而,现在我有了一个Ajax购物车,我需要在购物车发生变化时更新购物车总数 如果我再次调用paypal.Button.render函数,我会得到另一个按钮 因此,我需要删除旧按钮并重建,或者调用一些东西来更新总数 谁能给我指出正确的方向吗 这是我设置按钮的代码 function PayPalButton(authResult) { // console.log(aut
function PayPalButton(authResult) {
// console.log(authResult);
// Render the PayPal button
paypal.Button.render({
// Set your environment
env: authResult.PayPalEnvironment, // sandbox | production
// Specify the style of the button
style: {
label: 'generic',
size: 'responsive', // small | medium | large | responsive
shape: 'rect', // pill | rect
color: 'blue', // gold | blue | silver | black
tagline: false
},
// PayPal Client IDs - replace with your own
// Create a PayPal app: https://developer.paypal.com/developer/applications/create
client: {
sandbox: authResult.PayPalClientId,
production: authResult.PayPalClientId
},
payment: function (data, actions) {
// recover transaction value here
var carttotal = authResult.cart.FTotal - (authResult.VATApplies ? 0 : authResult.cart.VAT);
var paymentGuid = authResult.cart.PaymentGuid;
//alert(paymentGuid);
return actions.payment.create({
payment: {
transactions: [{
amount: {
total: carttotal.toString(), currency: 'GBP'
},
custom: paymentGuid.toString()
}]
}
});
},
onAuthorize: function (data, actions) {
return actions.payment.get().then(function (data) {
return actions.payment.execute().then(function () {
processPayPal(data);
});
});
}
}, '#paypal-button-container');
};
好吧,这很管用,但很难看。肯定有更好的办法 更新购物车后。我从DOM中删除了PayButton按钮,并将HTML恢复原状。然后我调用例程来重新配置按钮
$("#PayPalSection").remove();
$("#paypalButtonContainer").append('<div id="PayPalSection"><div class= "col-8 offset-2"><div id="paypal-button-container"></div></div></div>');
ConfigurePayPalButton();
$(“#PayPalSection”).remove();
$(“#paypalButtonContainer”)。附加(“”);
配置PayPalButton();
不幸的是,这会往返到DB,但我会尝试写一些不需要这一步的东西。我似乎找不到任何简单的方法来刷新按钮。也许唯一的方法是使用Jquery粗略地将所有PP bung的内容删除到dom中,然后重新恢复它?