當客戶在貝寶結賬時更改送貨地址時,我會使用“onShippingChange”來獲取它。但是,當我檢查給定的地址并拒絕它或需要更新運費時,它就不起作用了。
沒有 ajax 呼叫的作業示例:
paypal.Buttons({
...
onShippingChange: function(data, actions) {
if(data.shipping_address.country_code == 'ES'){
return actions.reject();
}
return actions.resolve();
...
});
一旦我將其更改為以下內容,它將無法正常作業:
paypal.Buttons({
...
onShippingChange: function(data, actions) {
fetch(ajax, {
method: 'post',
body: new URLSearchParams({
'do':'getShippingPricePaypalCheckout',
'country':data.shipping_address.country_code,
'id':data.orderID
}),
headers: {
'Accept': 'application/json',
'content-type': 'application/x-www-form-urlencoded; charset=UTF-8'
}
}).then(function(res) {
return res.json();
}).then(function(_data) {
if(!_data || _data == 'false' || _data == false){
console.log("Value of data: " data);
return actions.reject();
}else
return actions.resolve();
});
}
...
});
在除錯模式下,actions.reject() 被呼叫。但是在貝寶結帳中,不支持送貨國家的錯誤訊息不會出現。
console.log 的列印結果是正確的,并顯示“資料值:false”,因此正在呼叫 actions.resolve(),但 Paypal 沒有得到它。
有任何想法嗎?
uj5u.com熱心網友回復:
好的,我發現了我的錯誤。
我需要在獲取之前回傳:
...
onShippingChange: function(data, actions) {
return fetch(ajax, {
...
現在它正在作業:)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/472064.html
標籤:javascript 阿贾克斯 贝宝 拿来
