Перейти к содержанию
Официальный форум поддержки Simpla

Возврат на страницу заказа Robokassa?


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

1 минуту назад, Kosjak76 сказал:

Откуда вы взяли редирект в callback ??

Его там нет

И он там НЕ НУЖЕН

https://github.com/kvalood/Robokassa/blob/master/callback.php#L98

Ссылка на сообщение
Поделиться на другие сайты
// Установим статус оплачен
$simpla->orders->update_order(intval($order->id), array('paid'=>1));

// Спишем товары  
$simpla->orders->close(intval($order->id));
$simpla->notify->email_order_user(intval($order->id));
$simpla->notify->email_order_admin(intval($order->id));


die("OK".$order_id."\n");

Вот так заканчивается callback 

Ссылка на сообщение
Поделиться на другие сайты
4 минуты назад, alexivchenko сказал:

в Robokassa/callback.php есть 


header('Location: ' . $simpla->config->root_url . '/order/' . $order->url, true, 302);

возможно идет верный редирект на страницу https://site.ru/order/ и должно быть подставлен url заказа, но так как у вас url был переделан видимо есть какие-то проблемы с выводом 


$order->url

 

Сюда можно ссылку хоть на что написать, все равно редирект идет на site.ru/order

Ссылка на сообщение
Поделиться на другие сайты
Только что, Kosjak76 сказал:

// Установим статус оплачен
$simpla->orders->update_order(intval($order->id), array('paid'=>1));

// Спишем товары  
$simpla->orders->close(intval($order->id));
$simpla->notify->email_order_user(intval($order->id));
$simpla->notify->email_order_admin(intval($order->id));


die("OK".$order_id."\n");

Вот так заканчивается callback 

а зачем там тогда редирект?

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

БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!!!

Как еще обьяснить, чтоб ты понял?

callback  не имеет НИКАКОГО ОТНОШЕНИЯ к тому, куда попадает КЛИЕНТ

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

НИКАКОГО!!!

Я в душе не ебу, зачем кто-то вставил туда этот редирект

ОН там не нужен, потому что он НЕ СРАБОТАЕТ

Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, Kosjak76 сказал:

Откуда вы взяли редирект в callback ??

Его там нет

И он там НЕ НУЖЕН

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

Так ну по сути если callback у нас не участвует в формировании редиректа клиента на заказ, то где код который будет редиректить? то есть если брать из сессии order id то наверное где то должна быть функция 

get_order чтоб url вытащить и по нему редирект сделать?

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

Код читать умеешь?

Открой файл view/OrderView.php

Найди там конструкцию такую

if($url = $this->request->get('url', 'string'))
			$order = $this->orders->get_order((string)$url);
		elseif(!empty($_SESSION['order_id']))
			$order = $this->orders->get_order(intval($_SESSION['order_id']));
		else
			return false;

И попробуй разобраться, что происходит, когда клиент попадает на страницу сайт/order/

Без указания url заказа

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

@Kosjak76 прав

При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url

Вам нужно смотреть, что с сессией 

Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, alexivchenko сказал:

@Kosjak76 прав

При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url

Вам нужно смотреть, что с сессией 

Вот это я и пытаюсь обьяснить)

Ссылка на сообщение
Поделиться на другие сайты
9 минут назад, alexivchenko сказал:

Нужно в index.php после session_start();

прописать


print_r($_SESSION);

и посмотреть, выводится ли 


[order_id] =>

 

Спасибо при оформлении заказа

Array ( [current_page] => /cart/ [id] => bfe7d172342ca3b926b565fb8546baa6 [admin] => admin [order_id] => 65 )

Получается это url заказа?  - bfe7d172342ca3b926b565fb8546baa6

		//$order->url = md5(uniqid($this->config->salt, true));
		$order->url = substr(time(), 2, 8);

Тут в функции add_order , доработка которая делает числовой , возможно из за нее и весь сыр бор?

Ссылка на сообщение
Поделиться на другие сайты
6 минут назад, Kami сказал:

Спасибо при оформлении заказа


Array ( [current_page] => /cart/ [id] => bfe7d172342ca3b926b565fb8546baa6 [admin] => admin [order_id] => 65 )

Получается это url заказа?  - bfe7d172342ca3b926b565fb8546baa6


		//$order->url = md5(uniqid($this->config->salt, true));
		$order->url = substr(time(), 2, 8);

Тут в функции add_order , доработка которая делает числовой , возможно из за нее и весь сыр бор?

1.

Забудем про 

$order->url

2.

[id] => bfe7d172342ca3b926b565fb8546baa6

Никакого отношения не имеет к заказу и url

3. 

Нас интересует 

[order_id] => 65

4. 

Перейдите на страницу https://site.ru/order/ и вы увидите на этой странице данные заказа под №65?

 

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

Замените у себя в view/OrderView.php

if($url = $this->request->get('url', 'string'))
			$order = $this->orders->get_order((string)$url);
		elseif(!empty($_SESSION['order_id']))
			$order = $this->orders->get_order(intval($_SESSION['order_id']));
		else
			return false;

на 

		if($url = $this->request->get('url', 'string')) {
			$order = $this->orders->get_order((string)$url);
		} elseif(!empty($_SESSION['order_id'])) {
			$order = $this->orders->get_order(intval($_SESSION['order_id']));
			header('Location: ' . $this->config->root_url . '/order/' . $order->url, true, 302);
		} else {
			return false;
		}	

Получается, если у нас в $_SESSION['order_id'] есть id номер заказа и мы переходим на страницу https://site.ru/order/, то нас перекинет на станицу с url заказа https://site.ru/order/453453545

Изменено пользователем alexivchenko
Ссылка на сообщение
Поделиться на другие сайты
1 час назад, alexivchenko сказал:

Замените у себя в view/OrderView.php


if($url = $this->request->get('url', 'string'))
			$order = $this->orders->get_order((string)$url);
		elseif(!empty($_SESSION['order_id']))
			$order = $this->orders->get_order(intval($_SESSION['order_id']));
		else
			return false;

на 


		if($url = $this->request->get('url', 'string')) {
			$order = $this->orders->get_order((string)$url);
		} elseif(!empty($_SESSION['order_id'])) {
			$order = $this->orders->get_order(intval($_SESSION['order_id']));
			header('Location: ' . $this->config->root_url . '/order/' . $order->url, true, 302);
		} else {
			return false;
		}	

Получается, если у нас в $_SESSION['order_id'] есть id номер заказа и мы переходим на страницу https://site.ru/order/, то нас перекинет на станицу с url заказа https://site.ru/order/453453545

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

Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, Kami сказал:

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

надо смотреть где-то затирается сессия или задваивается

может когда меняли код, забыли где-то убрать 

Ссылка на сообщение
Поделиться на другие сайты
Только что, alexivchenko сказал:

надо смотреть где-то затирается сессия или задваивается

может когда меняли код, забыли где-то убрать 

да вот в том то и дело что к этому сайту имею чисто дружеское отношение, поэтому попросили глянуть. В общем даже редирект не стал добавлять в Orderview, для юзера работает, при админе такая дичь. Сейчас буду смотреть что там с сессиями, спасибо тебе и Kosjak76 за помощь!

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

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...