Юкасса + Битрикс = ошибка статуса “Оплачено”

На сайте одного из клиентов столкнулись со следующей проблемой.

На сайте под управлением 1С-Битрикс (редакция Бизнес) установлен штатный модуль оплаты Юкасса.

Часть платежей проходит корректно. На сайте при этом статус заказа меняется на оплаченный.

Часть платежей приходит в Юкасса, там платёж видно в статистике поступивших, но на сайте статус заказа так и остаётся неоплаченным.

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

Найти общие признаки у оплаченных и неоплаченных заказов так и не удалось.

При анализе обнаружилось, что ситуация возникает из-за того, что Юкасса иначе округляет сумму заказа.

Посмотреть код

paymentSum=1797.656 – сумма которая уходит в Юкассу yandexSum=1797.65 – сумма оплаты заказа, которую возвращает Юкасса

Sale\Handlers\PaySystem\YandexCheckoutHandler: yandexSum=1797.65; paymentSum=1797.656   09.06.2021 11:59:48
Sale\Handlers\PaySystem\YandexCheckoutHandler. ProcessRequest Error: Сумма платежа не совпадает с суммой оплаты

[свернуть]

Решить проблему удалось следующим образом: на странице https://www.сайт-клиента.ru/bitrix/admin/settings.php?lang=ru&mid=sale в настройках модуля Интернет-магазин округления при расчётах – два знака после запятой (.00)

Всем продаж!