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

Проблема с модулем robokassa


Recommended Posts

Добрый день.

 

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

После успешной оплаты и нажатия на кнопку вернуться в магазин выдает ошибку

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

что-то связанное с last_order_id

заказ в админке создается с нормальным номером, на странице success пишет Ваш заказ #%s сформирован!

еще из админки выкидывает почему-то

сайт takaro.ru

ocstore 3.0

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


1 годину назад, BB30 сказав:

Добрый день.

 

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

После успешной оплаты и нажатия на кнопку вернуться в магазин выдает ошибку

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

что-то связанное с last_order_id

заказ в админке создается с нормальным номером, на странице success пишет Ваш заказ #%s сформирован!

еще из админки выкидывает почему-то

сайт takaro.ru

ocstore 3.0

Ваш заказ #218 сформирован!

 

Ваш заказ успешно создан!

Пожалуйста, задавайте нам любые вопросы, которые у вас возникают.
Зарегистрированным пользователям доступен просмотр состояния заказа и прошлых покупок.

Спасибо за покупки в нашем интернет-магазине!

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


А у меня вот так) 

Ваш заказ #%s сформирован!

 

Ваш заказ успешно создан!

Пожалуйста, задавайте нам любые вопросы, которые у вас возникают.
Зарегистрированным пользователям доступен просмотр состояния заказа и прошлых покупок.

Спасибо за покупки в нашем интернет-магазине!

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


Все-таки нет, сегодня целый день оформлял заказы в разных браузерах и понял, что зависимости нет.

Просто иногда все нормально и заказ оформляется без ошибок, а иногда ошибка появляется.

Взаимосвязи с чем-либо на стороне пользователя я не вижу.

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


Или с сессией что-то, или данные по заказу в сессии очищаются раньше, чем должны

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


Здравствуйте,

там следующая связь:

 

когда покупатель оформляет заказ, у него сохраняется ID заказа в сессию, в $this->session->data['order_id']

затем пользователь переходит на оплату, оплачивает заказ и возвращается на сайт на страницу об успешном заказе

(catalog/controller/checkout/success.php)

 

И тогда Опенкат берет у пользователя ID заказа из сессии и отображает ему данные, типа: "Заказ №1234 успешно оплачен".

При этом удаляется  $this->session->data['order_id'] и ID заказа перекладывается в $this->session->data['last_order_id'].

Ну и еще корзина товаров обнуляется.

Далее пре перезагрузке страинцы ID заказа берется уже из $this->session->data['last_order_id']

 

Вот эта ошибка:

Цитата

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

 

означает что ID товара в сессии нет, ни в  $this->session->data['order_id'] ни в $this->session->data['last_order_id']

 

Происходить это может в следующих ситуациях:

1) ID заказа в сессии не было, пользователь просто открыл страницу об успешном заказе в браузере, не оформляя заказ.

 

2) Пользователь по каким-то причинам открыл страницу оплаты в другом браузере, отличном от того где он оформлял заказ.

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

 

3) В некоторых платежных системах (Робокасса) ссылка по которой пользователь должен вернуться на сайт задается в настройках (SuccessURL) https://yadi.sk/i/PHQBI-XyyA4OfA

 

И вот там либо домен отличается, либо на сайте http:// а в SuccessURL https:// (или наоборот на сайте https:// а в SuccessURL http://)

Тогда сайт не может получить данные сессии, потому что они привязаны к домену и к протоколу.

 

В этом случае нужно править Success URL в ЛК Робокассы.

 

-------------

 

По первым 2м ситуациям, ошибка - это ошибка этой сборки OpenCart

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

 

нужно править код в catalog/controller/checkout/success.php

 

Вместо кода 

if ($this->customer->isLogged()) {
				$data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', true), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('information/contact'), $this->url->link('product/special'), $this->session->data['last_order_id'], $this->url->link('account/download', '', true));
			} else {
				$data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'), $this->session->data['last_order_id']);
			}

сделать вот такой:

if( !empty($this->session->data['last_order_id']) )
		{
			if ($this->customer->isLogged()) {
				$data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/order/info&order_id=' . $this->session->data['last_order_id'], '', true), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('information/contact'), $this->url->link('product/special'), $this->session->data['last_order_id'], $this->url->link('account/download', '', true));
			} else {
				$data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'), $this->session->data['last_order_id']);
			}
		}
		else
		{
			if ($this->customer->isLogged()) {
				$data['text_message'] = sprintf($this->language->get('text_customer'), $this->url->link('account/account', '', true), $this->url->link('account/order', '', true), $this->url->link('account/order', '', true), $this->url->link('information/contact'), $this->url->link('product/special'), '', $this->url->link('account/download', '', true));
			} else {
				$data['text_message'] = sprintf($this->language->get('text_guest'), $this->url->link('information/contact'), $this->session->data['last_order_id']);
			}
		}

Файл с правками прикрелен к сообщению.

После замены файла catalog/controller/checkout/success.php

нужно перегенерировать кэш модификаторов.

https://yadi.sk/i/J_tEqWwzBetW3Q

success.php

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

@kin208 Спасибо большое за ответ!
1 и 2 варианты отпадают.
Сейчас сделал тестовый заказ и понял, что при редиректе на сайт после оплаты попадаю на страницу https://takaro.ru/success, а не ту, которая прописана в ЛК Робокассы

https://takaro.ru/index.php?route=extension/payment/robokassa/success

Подскажите что и где изменить, чтобы избежать ошибок?

Заказ в админке создается, номер присваивается, оплата проходит, но ошибка во фронте вылетает 

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

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


1 час назад, BB30 сказал:

@kin208 Спасибо большое за ответ!
1 и 2 варианты отпадают.
Сейчас сделал тестовый заказ и понял, что при редиректе на сайт после оплаты попадаю на страницу https://takaro.ru/success, а не ту, которая прописана в ЛК Робокассы

https://takaro.ru/index.php?route=extension/payment/robokassa/success

Подскажите что и где изменить, чтобы избежать ошибок?

Заказ в админке создается, номер присваивается, оплата проходит, но ошибка во фронте вылетает 

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

 

Попробуйте в Success URL в ЛК Робокассы https://yadi.sk/i/miEfwsGU_1TMZg 

сохранить: https://takaro.ru/success

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

1 час назад, kin208 сказал:

 

Попробуйте в Success URL в ЛК Робокассы https://yadi.sk/i/miEfwsGU_1TMZg 

сохранить: https://takaro.ru/success

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

не помогло.

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

то есть в одной вкладке я в админке сайта, на второй без авторизации делаю заказ и после возврата на сайт,

в другой вкладке выкидывает из админки - может это что-то даст.

сейчас попробую правки в success.php сделать

 

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


44 минуты назад, BB30 сказал:

Notice: Undefined index: last_order_id in /home/i/ipjurilo/ocstore/storage_ocstore/modification/catalog/controller/checkout/success.php on line 168

не помогло.

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

то есть в одной вкладке я в админке сайта, на второй без авторизации делаю заказ и после возврата на сайт,

в другой вкладке выкидывает из админки - может это что-то даст.

сейчас попробую правки в success.php сделать

 

 

Дайте пожалуйста ссылку на какой-нибудь тестовый товар за 1 рубль с ("Требуется доставка - Нет"),  проведу его оплату и посмотрю как это выглядит.

 

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

49 минут назад, BB30 сказал:

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

По-моему я нашел проблему, и тянется она достаточно давно.

Летом было так, проверял оформление заказа и постоянно вылетала ошибка (скрин 1 https://prnt.sc/uz6gwl)

я тогда первый раз голову с opencart сломал, все понять не мог, почему товар не найден, потом понял)

что это просто глюк с подставляемыми данными не туда (скрин 2 https://prnt.sc/uz6g78)

Связана это каким-то образом куки сайта и данными админов, хранящимися в браузере.

Сейчас я подумал, а почему из админки-то выбрасывает?

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

И ошибки похоже ушли .. это просто ппц.

Я не уверен на 100%, но на 99% точно.

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


12 минут назад, kin208 сказал:

 

Дайте пожалуйста ссылку на какой-нибудь тестовый товар за 1 рубль с ("Требуется доставка - Нет"),  проведу его оплату и посмотрю как это выглядит.

 

Робокасса в тестовом режиме, можете любой товар попробовать оформить и оплатить на сайте https://takaro.ru/

Но похоже искать и править ошибку нужно, я даже не знаю Дэниэлю Керру писать или в ocstore, так как мы на ocstore или ребятам, кто шаблон делал или в гугл хром)))

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


1 час назад, BB30 сказал:

По-моему я нашел проблему, и тянется она достаточно давно.

Летом было так, проверял оформление заказа и постоянно вылетала ошибка (скрин 1 https://prnt.sc/uz6gwl)

я тогда первый раз голову с opencart сломал, все понять не мог, почему товар не найден, потом понял)

что это просто глюк с подставляемыми данными не туда (скрин 2 https://prnt.sc/uz6g78)

Связана это каким-то образом куки сайта и данными админов, хранящимися в браузере.

Сейчас я подумал, а почему из админки-то выбрасывает?

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

И ошибки похоже ушли .. это просто ппц.

Я не уверен на 100%, но на 99% точно.

 

Ошибка может быть из-за того что Вы авторизовались в двух окнах в админке, и у Вас там разные токены.

на одного пользователя админки - может быть только один токен

https://yadi.sk/i/-WlVuK3Uqu8WYg

 

как только Вы авторизуетесь в одном из окон - второй токен Вам отключают и другое окно выбрасывает из админки.

 

------------

 

Вообщем там какая ошибка в самом файле storage_ocstore/modification/catalog/controller/checkout/success.php

$this->session->data['order_id'] - обнуляется, а в $this->session->data['last_order_id'] = $this->session->data['order_id'] - данные не сохраняются.

 

Почему - непонятно.

Возможно из-за какого-то модификатора который меняет этот файл.

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

@kin208 Интересно, что я авторизован только в одной вкладке браузера, а во второй заказ делаю без регистрации.

главное, что покупателей это не коснется, судя по всему, поэтому можно списать на косяки OC

Спасибо за помощь!

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


  • 1 year later...
25 минут назад, Focus777 сказал:

Здравствуйте, подскажите, решили, как-нибудь данный вопрос. Такая же проблема с Робокасса 20 способов

 

Здравствуйте,

там была ошибка при возврате пользователя на сайт после оформления заказа - отображался заголовок типа:

"Заказ №%s успешно оплачен"

 

но проблема была не в том что сессия сбрасывается (она на самом деле не сбрасывалась)

, а в том что модуль не подставлял номер заказа в заголовок.

 

нужно обновить модуль до последней версии

 

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

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

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

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

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

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

Вхід

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

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

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

Important Information

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