Я использую учебный код Paypal для создания простой кнопки Paypal Express, все работает до тех пор, пока я не добавлю код onshippingchange (который снова есть в их учебнике) - когда он попытается исправить заказ, чтобы добавить стоимость доставки Paypal возвращает ошибку 400.
Код работает, если нет попыток исправить заказ, оплата завершена и т. Д. Обратились в службу поддержки Paypal, но они берутся навсегда, и, к сожалению, пока что бесполезны
<script>
const baseOrderAmount = '15.00';
const addFloats = (...floats) => floats.reduce((v, t) => parseFloat(t) + parseFloat(v), 0).toFixed(2);
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: '0.01'
}
}]
});
},
onApprove: function(data, actions) {
// Capture the funds from the transaction
return actions.order.capture().then(function(details) {
// Show a success message to your buyer
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
onShippingChange: function(data, actions) {
// Patch the shipping amount
const shippingAmount = '20.00';
return actions.order.patch([
{
op: 'replace',
path: '/purchase_units/@reference_id==default/amount',
value: {
currency_code: 'USD',
value: addFloats(baseOrderAmount, shippingAmount),
breakdown: {
item_total: {
currency_code: 'USD',
value: baseOrderAmount
},
shipping: {
currency_code: 'USD',
value: shippingAmount
}
}
}
}
]);
}
}).render('#paypal-button-container');
Я ожидаю, что заказ Paypal будет обновлен до 15.00 товаров плюс 20.00 доставки, однако в окне PayPal выдается «что-то пошло не так» и консоль выдает ошибку 400