Неправильно сформированное числовое значение, встречающееся в PayPal - PullRequest
0 голосов
/ 11 ноября 2018

Произошла ошибка в моем модуле PayPal на моем сайте Prestashop. Это говорит

[30 октября 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;

}

Ответы [ 2 ]

0 голосов
/ 17 ноября 2018

Paypal хочет точную цену.

Например:

Если ваша корзина стоит 25 евро за 2 товара плюс 5 евро за доставку, вы также должны пройти доставку.

в этом случае необходимо для прохождения Налоговых пошлин .

Paypal говорит: вы хотите 2339,30 AUD, но ваша корзина стоит на 2 AUD меньше.

0 голосов
/ 11 ноября 2018

Проблема заключается в формате содержимого переменных, вы можете решить его, заменив его следующим:
$amountCheck += number_format((int)$item['quantity'] * (float)$item['price'], 2);

...