Перейти к содержимому

Как настроить проверку суммы заказа при оплате

Когда покупатель оплачивает заказ, платёжная система отправляет в магазин информацию об оплате. В этом сообщении передаётся сумма, которую заплатил покупатель. Система управления магазином сравнивает эту сумму с той, которая числится в заказе. Это нужно для того, чтобы убедиться, что состав заказа не изменился и покупатель оплатил правильную сумму.

Если суммы не совпадают, статус заказа не обновляется — это защищает от ошибок, когда с заказом происходят нестандартные действия. В истории обработки заказа появится запись:

Сумма заказа изменилась: ожидалось …, получено … Валюта: …

Сумма в запросе платёжной системы может незначительно отличаться от фактической суммы в магазине. Например, на 1,1 копейки или меньше. Причины:

  • погрешности округления;
  • конвертация валюты.

Такие небольшие расхождения система управления магазином игнорирует автоматически.

Если разница больше 1,1 копейки (например, 2 копейки), статус заказа не обновится. В истории появится сообщение об изменении суммы.

По умолчанию допустимое отклонение — 0.011 (1,1 копейки для рублей, 1,1 цента для долларов или евро). Если вы хотите увеличить порог до 2 копеек, добавьте параметр в файл настроек магазина:

'order_amount_tolerance' => 0.02,

В числовом значении используйте точку, а не запятую.

❌ Неправильно: 0,02

✅ Правильно: 0.02

Если файла настроек нет, создайте его:

<?php
return array(
'order_amount_tolerance' => 0.02,
);

После сохранения файла очистите кеш в приложении «Настройки».