You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Проблема проявляется на версии PHP >=7.1 + должна быть выставлена директива serialize_precision на значение 100 или больше
В методе RobokassaPayAPI::createForm при конвертации массива $receipt в $receiptJson с помощью json_encode цены заданные числами типа float могут быть закодированы с длинным хвостом, так как float преобразуется с захватом погрешности, которая начинается примерно с тридцатого знака.
Простой способ воспроизвести проблему с округлением: json_encode( 472.185 ) вернет "472.18500000000000227373675443232059478759765625". Такие числа могут добавлять лишние копейки к заказам и ломают странно выглядят на странице оплаты
Варианты решения:
Добавить в php.ini строку serialize_precision=1, если на сервере доступно редактирование php.ini
Требуется доработать функцию robokassa_payment_createFormWC, которая формирует массив $receipt и преобразовывать цены в строку ($current['cost'] и $current['sum'])
The text was updated successfully, but these errors were encountered:
Проблема проявляется на версии PHP >=7.1 + должна быть выставлена директива serialize_precision на значение 100 или больше
В методе
RobokassaPayAPI::createForm
при конвертации массива$receipt
в$receiptJson
с помощьюjson_encode
цены заданные числами типа float могут быть закодированы с длинным хвостом, так как float преобразуется с захватом погрешности, которая начинается примерно с тридцатого знака.Простой способ воспроизвести проблему с округлением:

json_encode( 472.185 )
вернет "472.18500000000000227373675443232059478759765625". Такие числа могут добавлять лишние копейки к заказам и ломают странно выглядят на странице оплатыВарианты решения:
robokassa_payment_createFormWC
, которая формирует массив$receipt
и преобразовывать цены в строку ($current['cost'] и $current['sum'])The text was updated successfully, but these errors were encountered: