Перейти до вмісту
Пошук в
  • Детальніше...
Шукати результати, які ...
Шукати результати в ...

Плагин Robokassa


priskorbno

Recommended Posts

Стоит ocStore с плагином Робокассы (из последней версии ocStore). После оплаты через Робокассу перекидывает на окно на их сайте, в котором написано следующее:"Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка."Платеж при этом проходит и деньги списываются. Так продолжается около двух минут, потом Робокасса говорит, что с магазином так связаться и не удалось и информация будет отправлена администратору магазина. Администратору действительно приходит на почту информация о списании.В общем, покупателей это ставит в ступор и без sms от банка они не понимают, прошел платеж в магазин или нет.В техподдержке Робокассы написали следующее:"Вы не корректно обрабатываете наши уведомления об оплате, или не даёте нам корректного ответа на запрос подтверждения платежа."Пароли сверял, пути прописывал так, как отображает плагин. Где копать?

Надіслати
Поділитися на інших сайтах


  • 4 months later...

У меня аналогично ocStore v0.1.4, хостер-хостер, =( сейчас пытаюсь решить проблему, оплата проходит, и дальше эта ошибка...

Вот что в логах обнаружил:

2011-02-12 12:14:21 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 115

2011-02-12 12:14:21 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 116

2011-02-12 12:14:21 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 117

2011-02-12 12:14:24 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 115

2011-02-12 12:14:24 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 116

2011-02-12 12:14:24 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 117

2011-02-12 12:16:00 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 70

2011-02-12 12:16:00 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 71

2011-02-12 12:16:00 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 72

2011-02-12 12:21:13 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 70

2011-02-12 12:21:13 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 71

2011-02-12 12:21:13 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 72

2011-02-20 12:21:25 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 70

2011-02-20 12:21:25 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 71

2011-02-20 12:21:25 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 72

2011-02-20 12:22:11 - PHP Notice: Undefined index: OutSum in .../catalog/controller/payment/robokassa.php on line 115

2011-02-20 12:22:11 - PHP Notice: Undefined index: InvId in .../catalog/controller/payment/robokassa.php on line 116

2011-02-20 12:22:11 - PHP Notice: Undefined index: SignatureValue in .../catalog/controller/payment/robokassa.php on line 117

Змінено користувачем kazaam2
Надіслати
Поділитися на інших сайтах


  • 5 weeks later...

Аналогичная проблема.

Версия магазина: ocStore v0.1.9 (OpenCart v1.4.9.4)

Изменения вносились только в шаблон.

Хостинг - обычный.

Проблема:

После оплаты товара через модуль робокасса, редиректит на такую страницу:

Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка.

Если кнопку "Продолжить" клацнуть через 3-4 минуты - переходит на

Оплата счета выполнена. Вы будете перенаправлены обратно на сайт магазина автоматически через 30 секунд.

Нажмите кнопку «Вернуться», чтобы вернуться немедленно.

Вы также можете распечатать квитанцию по операции, нажав на кнопку «Напечатать».

При этом: статус товара меняется на заданный в настройках модуля робокассы, деньги приходят на счет в робокассе, на почту админа приходит уведомление о новом заказе

В тестовом режиме было так:

после редиректа с магазина на тестовый сервер робокассы, если нажать первую кнопку (соединение с Result URL) - возвращает это:

(The remote server returned an error: (500) Internal Server Error

. Если тут же нажать еще раз - возвращает "OK"

При этом: статус товара меняется на заданный в настройках модуля робокассы, на почту админа приходит уведомление о новом заказе

В логах:

2011-04-03 17:47:08 - PHP Notice:  Undefined index:  OutSum in .../catalog/controller/payment/robokassa.php on line 115
2011-04-03 17:47:08 - PHP Notice:  Undefined index:  InvId in .../catalog/controller/payment/robokassa.php on line 116
2011-04-03 17:47:08 - PHP Notice:  Undefined index:  SignatureValue in ...catalog/controller/payment/robokassa.php on line 117

В настройках робокассы

Result URL: http://домен.ru/index.php?route=payment/robokassa/callback (метод POST)

Success URL: http://домен.ru/index.php?route=payment/robokassa/success (метод POST)

Адреса точно соответствуют тем, что в настройках модуля робокассы

Очень прошу помочь в решении проблемы

Змінено користувачем dim565
Надіслати
Поділитися на інших сайтах


В логах:

2011-04-03 17:47:08 - PHP Notice:  Undefined index:  OutSum in .../catalog/controller/payment/robokassa.php on line 115
2011-04-03 17:47:08 - PHP Notice:  Undefined index:  InvId in .../catalog/controller/payment/robokassa.php on line 116
2011-04-03 17:47:08 - PHP Notice:  Undefined index:  SignatureValue in ...catalog/controller/payment/robokassa.php on line 117

Вообще, вот эта запись в логе говорит о том, что был вызов ResultURL без передачи параметров. Если робокасса что-то такое некорректно передавала, не уверен что тут можно что-то сделать.

Надіслати
Поділитися на інших сайтах


Не думаю, что робокасса передает что-то не так - все-таки серезный сервис, который проводит более 10 тысяч операций в день.

К тому же, техподдержка робокассы ссылается на ошибку в модуле

Надіслати
Поділитися на інших сайтах


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

ResultURL типа http://ocstore.andyhost.ru/index.php?route=payment/robokassa/callback сам по себе уже является запросом типа GET. Я не уверен что в запросы типа GET можно одновременно передавать данные в POST. Рекомендую поиграться с типом запроса в настройках робокассы.

Надіслати
Поділитися на інших сайтах


Попробуйте вот такой временный вариант:

В файле system/engine/front.php

в строке 34 (в самом начале функции private function execute($action)

вставить вот такой код:

		if (! is_object($action))
		{
		    return(false);
		};

На тестовом сервере ошибка перестает выдаваться. Проверьте, пожалуста, у себя.

Надіслати
Поділитися на інших сайтах


Похоже нашел глюк в модуле робокассы. Предыдущую правку для front.php можно не делать.

В файле catalog/controller/payment/robokassa.php в функции callback найти вот такой блок:

			if( $order_info['order_status_id'] == 0) {
				$this->model_checkout_order->confirm($order_id, $new_order_status_id, 'ROBOKASSA');
				return (TRUE);
			}

и сделать что-бы он был вот таким (добавлена строка echo и изменен результат возврата):

			if( $order_info['order_status_id'] == 0) {
				$this->model_checkout_order->confirm($order_id, $new_order_status_id, 'ROBOKASSA');
				echo "Ok\n";
				return ('');
			}

Сообщите, плиз, о результатах.

Надіслати
Поділитися на інших сайтах


К сожалению, не помогло. Также пишет:

Не удалось установить связь с магазином для передачи ему информации об оплате. Через минуту будет произведена повторная попытка.

  • В robokassa.php изменил со строки 134 код на этот:

    if( $order_info['order_status_id'] == 0) {
                                    $this->model_checkout_order->confirm($order_id, $new_order_status_id, 'ROBOKASSA');
                                    echo "Ok\n";
                                    return ('');
                            }
    Проверил оплату 2 раза - не работает. Тогда
  • В front.php добавил это:

    if (! is_object($action))
                    {
                        return(false);
                    };
И опять проверил - опять ошибка :blink:

В логах все тоже самое, что и раньше:

2011-04-08 3:06:10 - PHP Notice:  Undefined index:  ...catalog/controller/payment/robokassa.php on line 115
2011-04-08 3:06:10 - PHP Notice:  Undefined index:  ...catalog/controller/payment/robokassa.php on line 116
2011-04-08 3:06:10 - PHP Notice:  Undefined index:  ...catalog/controller/payment/robokassa.php on line 117

По идее, если работает на тестовом сервере, должно ж и на обычном...Может, есть еще какие-нибудь варианты?

Надіслати
Поділитися на інших сайтах


Правка во front.php - это подпорка при отсуствии правки в robokassa.php. Но она не помешает, по идее.

На счет неудачной попытки связи ничего не могу сказать. Мне сначала надо повторить эту ошибку. Тут я, пока, вижу единственный способ - если вы пустите меня на свой хостинг что-бы провести отладку. Я конечно могу попробовать объяснить ситуацию саппорту робокассы, но не знаю как они среагируют.

Надіслати
Поділитися на інших сайтах


К сожалению, не помогло. Также пишет:

И в тестовом режиме тоже не помогло?

Хотя, вроде вы пишете что на тестовом работает?

Написал в саппорт робокассы что-бы активировали мой логин. Когда (если) активируют - проверю.

Надіслати
Поділитися на інших сайтах


И в тестовом режиме тоже не помогло?

Хотя, вроде вы пишете что на тестовом работает?

К сожалению, мой аккаунт на робокассе прошел активацию пару дней назад и сервер тестовый уже недоступен.

Написал в саппорт робокассы что-бы активировали мой логин. Когда (если) активируют - проверю.

Тут я, пока, вижу единственный способ - если вы пустите меня на свой хостинг что-бы провести отладку

Если вы непротив, я вышлю вам личку данные доступа к фтп...все-таки, неизвестно, как ответит робокасса и хочется поскорее:)
Надіслати
Поділитися на інших сайтах


Если вы непротив, я вышлю вам личку данные доступа к фтп...все-таки, неизвестно, как ответит робокасса и хочется поскорее:)

Можно попробовать. Надеюсь тестовые деньги компенсируете? :)

Надіслати
Поділитися на інших сайтах


Пофиксил. Для заинтересованных:

В файле catalog/controller/payment/robokassa.php в функции callback нужно заменить вот такие строки:

echo "OK\n";

вот на такую:

echo "OK".$order_id."\n";

dim565, спасибо за возможность отладить это дело.

  • +1 2
Надіслати
Поділитися на інших сайтах


UncleAndy, еще раз благодарю за внимание и исправление ошибки :) :) Другие даже не ответили на мои письма о проблеме с модулем (один человек только сказал, что у него нет аккаунта на робокассе и помочь не может). Побольше бы таких знатаков, как вы B)
Надіслати
Поділитися на інших сайтах


Плагин Робокасса неработает. Пишет вот это при попытке отослать данные:

К сожалению, оплата этого счета невозможна, так как некоторые параметры счета некорректны.

Неверный параметр: Signature.

Прочел на сайте Робокассы про Signature следущее.

sSignatureValue

- контрольная сумма MD5 - строка представляющая собой 32-разрядное число в 16-ричной форме и любом регистре (всего 32 символа 0-9, A-F). Формируется по строке, содержащей некоторые параметры, разделенные ':', с добавлением sMerchantPass2 - (устанавливается через интерфейс администрирования) т.е. nOutSum:nInvId:sMerchantPass2[:пользовательские параметры, в отсортированном порядке]

К примеру если при инициализации операции были переданы пользовательские параметры shpb=xxx и shpa=yyy то подпись формируется из строки ...:sMerchantPass2:shpa=yyy:shpb=xxx

Надіслати
Поділитися на інших сайтах


Створіть аккаунт або увійдіть для коментування

Ви повинні бути користувачем, щоб залишити коментар

Створити обліковий запис

Зареєструйтеся для отримання облікового запису. Це просто!

Зареєструвати аккаунт

Вхід

Уже зареєстровані? Увійдіть тут.

Вхід зараз
  • Зараз на сторінці   0 користувачів

    • Ні користувачів, які переглядиють цю сторінку

×
×
  • Створити...

Important Information

На нашому сайті використовуються файли cookie і відбувається обробка деяких персональних даних користувачів, щоб поліпшити користувальницький інтерфейс. Щоб дізнатися для чого і які персональні дані ми обробляємо перейдіть за посиланням . Якщо Ви натиснете «Я даю згоду», це означає, що Ви розумієте і приймаєте всі умови, зазначені в цьому Повідомленні про конфіденційність.