Jump to content
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Проблема с модулем 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

Edited by BB30
Link to comment
Share on other sites


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 сформирован!

 

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

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

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

Успешно
Link to comment
Share on other sites


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

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

 

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

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

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

Успешно
Link to comment
Share on other sites


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

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

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

Link to comment
Share on other sites


Вот этот файл покажите
modification/catalog/controller/checkout/success.php

Link to comment
Share on other sites


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

Link to comment
Share on other sites


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

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

 

когда покупатель оформляет заказ, у него сохраняется 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

Link to comment
Share on other sites

@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

Link to comment
Share on other sites


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

Link to comment
Share on other sites

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 сгделать

 

Link to comment
Share on other sites


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 рубль с ("Требуется досивка - Нет"),  проведу его оплату и посмотрю как это выглядит.

 

Link to comment
Share on other sites

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

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

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

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

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

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

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

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

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

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

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

Link to comment
Share on other sites


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

 

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

 

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

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

Link to comment
Share on other sites


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'] - данные не сохраняются.

 

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

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

Link to comment
Share on other sites

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

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

Спасипотому что за помощь!

Link to comment
Share on other sites


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

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

 

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

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

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

 

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

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

 

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

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.