Недавно занимался правками этого элемента.
У кого с этим элементом не работают другие способы оплаты - необходимо в файл sberbank.php сохранить в кодировке UTF без BOM. Сейчас в начале файла есть метка BOM и это плохо.
У кого после оплаты не меняется статус, значит у Вас есть элемент оплаты Yandex Kassa, поэтому необходимо поменять
if (!isset($_REQUEST['orderNumber']) && isset($_REQUEST['orderId']))
на
if (!isset($_REQUEST['orderNumberSberbank']) && isset($_REQUEST['orderId']))
Далее
//Принудительно сами генерируем запрос callback
$fields = array(
'orderNumber' => $orderNumber,
'orderStatus' => $orderStatus,
'orderAmount' => $response['Amount'],
'checkOrderId' => $_REQUEST['orderId']
);
на
//Принудительно сами генерируем запрос callback
$fields = array(
'orderNumberSberbank' => $orderNumber,
'orderStatus' => $orderStatus,
'orderAmount' => $response['Amount'],
'checkOrderId' => $_REQUEST['orderId']
);
Далее
return $_REQUEST['orderNumber'];
на
return $_REQUEST['orderNumberSberbank'];
Долго объснять, с чем это связано, но если коротко - то нужно использовать уникальные имена в реквесте в функции getRequestOrderId. В элементе использовалось имя, которое используется в Yandex Kassa. Поэтому оплата не проходит на сайте.