Как исправить «ошибку валидации» PayPal в Node JS? - PullRequest
1 голос
/ 28 апреля 2019

Я пытаюсь отправить запрос в API PayPal с заказом.Тем не менее, каждый раз, когда я отправляю запрос, я получаю эту ошибку:

Сумма валюты должна быть неотрицательным числом, при желании может содержать ровно 2 десятичных знака, разделенных '.', Необязательный разделитель тысяч ', ', ограничено 7 цифрами перед десятичной точкой и валютой, которая является действительным кодом валюты ISO

Я просмотрел свой объект запроса, но все значения соответствуют информации, которую требует PayPal.Сумма total.total состоит из двух цифр, и код валюты ISO верен, но я все еще получаю ту же ошибку.

Это JSON, который я отправляю:

{  
   "amount":{  
      "total":24.51,
      "currency":"USD",
      "details":{  
         "subtotal":22.99,
         "tax":0.06625
      }
   },
   "description":"Nature Prints produced by Jonah's Photos.",
   "invoice_number":"deb03d30-69e5-11e9-bc27-855d4a6ff0e2",
   "payment_options":{  
      "allowed_payment_method":"INSTANT_FUNDING_SOURCE"
   },
   "item_list":{  
      "items":[  
         {  
            "name":"IMG_9454 | Nature Photo @ 8.5\" x 11\" |",
            "quantity":1,
            "price":14.99,
            "tax":0.06625,
            "sku":"40751898403_90408c24a3",
            "currency":"USD"
         }
      ]
   }
}

Это мой код:

var payReq = {
      intent:'order',
      payer: {
        payment_method: 'paypal'
      },
      redirect_urls:{
        return_url:'http://localhost:3000/success',
        cancel_url:'http://localhost:3000/cancel'
      },
      transactions: [{
        amount: {
          total: Number((((req.session.cart.totalPrice + req.session.cart.shippingPrice) / 100) + ((req.session.cart.totalPrice + req.session.cart.shippingPrice) / 100) * determineSalesTax(req.session.orderInformation.userData.state.toLowerCase())).toFixed(2)),
          currency: 'USD',
          details: {
            subtotal: parseFloat((req.session.cart.totalPrice + req.session.cart.shippingPrice) / 100),
            tax: determineSalesTax(req.session.orderInformation.userData.state.toLowerCase())
          }
        },
        description: 'Nature Prints produced by Jonah\'s Photos.',
        invoice_number: req.session.orderInformation.orderID,
        payment_options: {
          allowed_payment_method: 'INSTANT_FUNDING_SOURCE'
        },
        item_list:{
          items: []
        }
      }]
    };

Я ожидаю, что запрос будет успешно выполнен, но каждый раз получаю одну и ту же ошибку.

Версии

PayPal-Rest-SDK: 1.8.1

...