Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 1 минуту назад, Kosjak76 сказал: Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН https://github.com/kvalood/Robokassa/blob/master/callback.php#L98 Quote Link to post Share on other sites
Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 // Установим статус оплачен $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 Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 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 Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 Только что, 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 а зачем там тогда редирект? Quote Link to post Share on other sites
Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!!! Как еще обьяснить, чтоб ты понял? callback не имеет НИКАКОГО ОТНОШЕНИЯ к тому, куда попадает КЛИЕНТ Quote Link to post Share on other sites
Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 НИКАКОГО!!! Я в душе не ебу, зачем кто-то вставил туда этот редирект ОН там не нужен, потому что он НЕ СРАБОТАЕТ Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 3 минуты назад, Kosjak76 сказал: Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН Взял в модуле на который мне дали робокассы спецы ссылку. Сказали что модуль актуальный. Так ну по сути если callback у нас не участвует в формировании редиректа клиента на заказ, то где код который будет редиректить? то есть если брать из сессии order id то наверное где то должна быть функция get_order чтоб url вытащить и по нему редирект сделать? Quote Link to post Share on other sites
Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 Код читать умеешь? Открой файл 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 заказа Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 @Kosjak76 прав При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url Вам нужно смотреть, что с сессией Quote Link to post Share on other sites
Kosjak76 Posted February 17, 2022 Report Share Posted February 17, 2022 1 минуту назад, alexivchenko сказал: @Kosjak76 прав При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url Вам нужно смотреть, что с сессией Вот это я и пытаюсь обьяснить) Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 Нужно в index.php после session_start(); прописать print_r($_SESSION); и посмотреть, выводится ли [order_id] => Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 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 , доработка которая делает числовой , возможно из за нее и весь сыр бор? Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 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? Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 (edited) Замените у себя в 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 Edited February 17, 2022 by alexivchenko Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 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 странная вещь, в режиме инкогнито не входя в админку, все супер, оформилось и редирект. а вот из под админки был вот такой трабл. Quote Link to post Share on other sites
alexivchenko Posted February 17, 2022 Report Share Posted February 17, 2022 1 минуту назад, Kami сказал: странная вещь, в режиме инкогнито не входя в админку, все супер, оформилось и редирект. а вот из под админки был вот такой трабл. надо смотреть где-то затирается сессия или задваивается может когда меняли код, забыли где-то убрать Quote Link to post Share on other sites
Kami Posted February 17, 2022 Author Report Share Posted February 17, 2022 Только что, alexivchenko сказал: надо смотреть где-то затирается сессия или задваивается может когда меняли код, забыли где-то убрать да вот в том то и дело что к этому сайту имею чисто дружеское отношение, поэтому попросили глянуть. В общем даже редирект не стал добавлять в Orderview, для юзера работает, при админе такая дичь. Сейчас буду смотреть что там с сессиями, спасибо тебе и Kosjak76 за помощь! Quote Link to post Share on other sites
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.