Я получаю сообщение об ошибке, когда я использую переменную для цены в песочнице PayPal, говоря, что мне нужно неотрицательное число - PullRequest
0 голосов
/ 20 мая 2019

Я пытался разобрать возвращаемое значение в число, но это не помогло, итоговое значение работает, если я жестко закодировал значение в что-то вроде «1,50», но не удается всякий раз, когда я использую переменную.

Это функция, которую я использую для добавления и возврата окончательной цены

getTotal() {
  let total = 0;
  for (var i = 0; i < this.list.length; i++) {
    if (this.list[i].price) {
      total += this.list[i].price;
    }
  }
  return Number(total.toFixed(2));
}

Это фрагмент, в котором я устанавливаю цену для отправки в PayPal

payment: (data, actions) => {
  return actions.payment.create({
    payment: {
      transactions: [{
        amount: {
          total: this.getTotal,
          currency: 'AUD'
        }
      }]
    }
  });
}

Если я установил this.getTotal с чем-то вроде «1,50» у меня нет проблем.Но в настоящее время я получаю эту ошибку ...

"Сумма в валюте должна быть неотрицательным числом, необязательно может содержать ровно 2 десятичных знака, разделенных символом« .'... »

Ответы [ 2 ]

0 голосов
/ 20 мая 2019

Я предположил, что ваша сумма -> Всего также принимает строку.Так что вы можете попробовать это

   getTotal() {
      let total = 0;
      for (var i = 0; i < this.list.length; i++) {
          if (this.list[i].price) {
              total += this.list[i].price;
          }
      }
      return total.toFixed(Math.max(2,2));
    }

Поскольку ошибка говорит, что она может содержать ТОЛЬКО 2 десятичных знака.

0 голосов
/ 20 мая 2019

Вместо:

return Number(total.toFixed(2))

Попробуйте:

return parseFloat(total).toFixed(2);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...