Экспресс-код Paypal, возвращающий ошибку 400 в PATCH - PullRequest
0 голосов
/ 28 марта 2019

Я использую учебный код 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

1 Ответ

0 голосов
/ 14 апреля 2019

Пример кода на веб-сайте Paypal в настоящее время содержит ошибку.

Ссылка: https://developer.paypal.com/docs/checkout/integration-features/shipping-callback/

В настоящее время Paypal предоставляет этот код в своем примере:

path: '/purchase_units/@reference_id=='default'/amount'

Ваш код (похоже, что вы удалили кавычки, как я делал сначала):

path: '/purchase_units/@reference_id==default/amount',

Однако, похоже, это правильный код:

path: "/purchase_units/@reference_id=='default'/amount"
...