Юкасса + Битрикс = ошибка статуса “Оплачено”
На сайте одного из клиентов столкнулись со следующей проблемой.
На сайте под управлением 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)
Всем продаж!