Перейти к содержанию
Abit

Ошибка при уведомлении с Робокассы

Рекомендуемые сообщения

Люди у меня такая проблема.

У хочу на своем магазине использовать робокассу, в тестовом после проверок у меня в поле Уведомление о платеже выходит ошибка

<br /><b>Fatal error</b>: Call to a member function getFile() on a non-object in <b>/путь к папке сайта/system/engine/front.php</b> on line <b>34</b><br />

ссылка для уведомления выглядит так http://www.сайт/index.php?route=payment/robokassa/callback

Что делать в коде ковырялся так и не понял в чем причина.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Версия движка какая? В последней версии я проверял работу этого модуля и в тестовом и в рабочем режиме.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Версия ocstore_v0.1.7 + стоит модуль замены урлов, т.е. он убирает вот такие вещи "index.php?route="

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так проблема решена ... причина была в модуле Simple URL V1.0 помогла в фалике /system/library/response.php который заменялся этим модулем дописать в строке исключения замены этой ссылки так же как и ссылок админ панели

public function output() {

global $registry;

if ($registry->get('config')->get('config_seo_url') and !preg_match('/\/admin\//ism', $this->output) and ! preg_match('/robokassa\/callback/ism', $this->output)) {

$ouput = preg_replace('/index\.php\?route=([-a-z0-9_.\/]*+)(?:(\&|\&)([-a-z0-9+&@\/%=_.]*+))?/i', '${1}?${3}', $this->output);

} else {

$ouput = $this->output;

}

if ($this->level) {

$ouput = $this->compress($ouput, $this->level);

}

if (!headers_sent()) {

foreach ($this->headers as $header) {

header($header, TRUE);

}

}

echo $ouput;

}

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Ребят, та же проблема, та же версия магазина, тот же Simple URL V1.0, но вариант от Abit не устраняет первопричину, а маскирует ее. Да, ошибка перестала появляться, но с тем же успехом и заказы вообще не принимаются, даже статус Ожидание при оформлении заказа клиентом в панели админисратора не появляется: вообще заказ как бы не был совершен. До работы "с ошибкой", хоть она и проявлялась, все заказы успешно видел "продавец" со статусом оплачено, но сейчас... Хотел бы еще уточнить у знатоков: должны ли письма отправляться продавцу по мере оплаты/поступления заказа? у меня их нет...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

XYZ

Ты прав заметил то, что заказ не работает не сразу.

Я ковырялся в коде и по мере догадок и распечатываний переменных /system/engine/front.php сделал вывод, что ошибка возникает в коде нового /catalog/controller/common/seo_url.php его заменяет модуль Simple URL V1.0 но так и не понял что там делать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Думаю надо в .htaccess запретить редирект и рерайт ссылок платежных методов... примерно так:

после строк

RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)$ [NC]
и

RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)\&(.*)$ [NC]
добавить строку

RewriteCond %{QUERY_STRING} !(^route=payment)

и в response.php запретить карябать такие ссылки...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Хорошая идея надо попробовать ...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Yesvik

не помогло все равно выдает ошибку (

<br />
<b>Fatal error</b>:  Call to a member function getFile() on a non-object in <b> /путь/chaevnya.com/system/engine/front.php</b> on line <b>36</b><br />

Не могли бы показать как должен выглядеть файл .htaccess

в моем случае он такой

Options +FollowSymlinks

# Запретить листинг директорий
Options -Indexes

AddType application/x-httpd-php .phtml
AddHandler application/x-httpd-php .phtml

RewriteCond %{HTTP_HOST} ^chaevnya.com
RewriteRule (.*) http://www.chaevnya.com/$1 [R=301,L]

# Закрыть доступ к файлам шаблонов
<FilesMatch "\.tpl">
Order deny,allow
Deny from all
</FilesMatch>

# Необходимо для ЧПУ.
RewriteEngine On
RewriteBase /

# This will prevent redirect loop for the below three RewriteRule.
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule .* - [L]

# E.g external redirect /index.php?route=common/home to /common/home
# X-Requested-With (http header created by jQuery.load()) prevent this rule from AJAX request E.g Get product/product/review when open product details.
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)$ [NC]
RewriteCond %{QUERY_STRING} !(^route=payment)
RewriteRule ^index\.php %1/? [R=301,L]

# E.g external redirect /index.php?route=product/product&product_id=8 to /product/product?product_id=8
RewriteCond %{HTTP:X-Requested-With} !XMLHttpRequest [NC]
RewriteCond %{QUERY_STRING} ^route=([a-z-_/]+)\&(.*)$ [NC]
RewriteCond %{QUERY_STRING} !(^route=payment)
RewriteRule ^index\.php %1/?%2 [R=301,L]

# E.g internal redirect /common/home to /index.php?route=common/home
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)/$|^([^?]*)$ index.php?_route_=$1$2 [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^?]*)/$|^([^?]*)$ admin/index.php?_route_=$1$2 [L,QSA]

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел твой магазин...

ссылки вида /index.php?route=blahblah/blahblah редиректятся на /blahblah/blahblah/

ссылки вида /index.php?route=payment/blahblah не редиректятся

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

Уведомления от платежных систем будут проходить без каких либо изменений.

Какая версия магазина?

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Посмотрел твой магазин... ссылки вида /index.php?route=blahblah/blahblah редиректятся на /blahblah/blahblah/ссылки вида /index.php?route=payment/blahblah не редиректятсятак что к .htaccess тут претензий нет и правки ты сделал абсолютно правильно.Уведомления от платежных систем будут проходить без каких либо изменений.Какая версия магазина?

Версия ocstore_v0.1.7 + стоит модуль замены урлов, т.е. он убирает вот такие вещи "index.php?route="

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.