Страница 1 из 1

Ограничения InvoiceID у Робокассы

Добавлено: 28 ноя 2016, 11:47
pavel
Сегодня перестал работать модуль приема платежей через Робокассу.
При попытке произвести оплату Робокасса выдает такую ошибку:

Код: Выделить всё

К сожалению, оплата этого счета невозможна
Некоторые параметры счета некорректны
Неверный параметр: InvoiceID
Созвонился с их админами, выяснил, что в системе платежей Робокассы существует ограничение на размер поля InvoiceID равное:
7FFFFFFF
или в десятичном виде:
2147483647
С учетом того, что 6 правых разрядов в модуле оплаты указывают дату, а номер заказа каждый раз увеличивается на 1, получаем максимально возможное количество заказов через модцуль "Робокасса" = 2147. После этого он перестает работать :(

Вопрос: Возможно ли корректно обнулить номер без вреда для системы?
А в идеале, делать это автоматически каждый день.

Re: Ограничения InvoiceID у Робокассы

Добавлено: 28 ноя 2016, 12:17
Dmitry
Да, была в модуле робокассы такая проблема.
чтобы ее исправить, нужно открыть файл /var/www/robokassa/files/functions.php (или в случае apache версии 2.4.х может быть немного иной путь - /var/www/html/robokassa/files/functions.php), найти в нем такие строки:

Код: Выделить всё

// берем код, считанный из базы
    $max_id = $string['0'] ;
// довесочек к коду заказа
     $addon=date("dmy");
// собираем код заказа
    $order['id'] = $max_id.$addon;
и отредактировать их так. чтоб стало

Код: Выделить всё

// берем код, считанный из базы
    $max_id = $string['0'] ;
// довесочек к коду заказа
     $addon=date("y");
// собираем код заказа
    $order['id'] = $max_id.$addon;
это укоротит значение order-id (номера заказа по базе Easyhotspot), и модуль будет работать дальше