Произошла ошибка в моем модуле PayPal на моем сайте Prestashop. Это говорит
[30-Oct-2018 10:37:19 Австралия / Сидней] Примечание PHP: неверно сформированное числовое значение, встречающееся в /home/public_html/modules/npaypalpro/ajax.php в строке 214Строка 214
$amountCheck += number_format($item['quantity'] * $item['price'], 2);
Есть идеи, что может быть причиной?
PHP7.1 на сервере
PayPal сказал
Я быстро проверил журналы транзакций и обнаружил несоответствие в общей сумме и сумме товара.
Для одного заказа общая сумма составляет 2337,3 австралийских долларов, но сумма товара
детали AUD 2339.30Детали товара:
Hikvision 6 МБ — 180,90 x 7 (количество) = 1266,30 AUD Hikvisiion 4
канал — 535,50 х 2 (количество) = 1071,00 AUD Доставка — 0 Ваучер
Налоги — 2,00 AUD — которые не добавляются в общую сумму.Не могли бы вы попросить веб-разработчика проверить, как налоги ваучера
добавляется или чтобы увидеть, почему это не проходит в вызове API?
Полная функция
function totalAmountCheck($amount, $items)
{
$amountCheck = $diff = 0;
foreach ($items as $item)
$amountCheck += number_format($item['quantity'] * $item['price'], 2);
if ($amountCheck != $amount)
$diff = number_format($amountCheck - $amount, 2);
return $diff;
}
Проблема заключается в формате содержимого переменных, вы можете решить его, заменив его следующим:
$amountCheck += number_format((int)$item['quantity'] * (float)$item['price'], 2);
Paypal хочет точную цену.
Например:
Если ваша корзина стоит 25 евро за 2 товара плюс 5 евро за доставку, вы также должны пройти доставку.
в этом случае вы должен пройти Ваучер Налоги.
Paypal говорит: вы хотите 2339,30 AUD, но ваша корзина стоит на 2 AUD меньше.