Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 1 минуту назад, Kosjak76 сказал: Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН https://github.com/kvalood/Robokassa/blob/master/callback.php#L98 Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 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 Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 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 Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 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 а зачем там тогда редирект? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 БЛЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯЯ!!! Как еще обьяснить, чтоб ты понял? callback не имеет НИКАКОГО ОТНОШЕНИЯ к тому, куда попадает КЛИЕНТ Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 НИКАКОГО!!! Я в душе не ебу, зачем кто-то вставил туда этот редирект ОН там не нужен, потому что он НЕ СРАБОТАЕТ Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 3 минуты назад, Kosjak76 сказал: Откуда вы взяли редирект в callback ?? Его там нет И он там НЕ НУЖЕН Взял в модуле на который мне дали робокассы спецы ссылку. Сказали что модуль актуальный. Так ну по сути если callback у нас не участвует в формировании редиректа клиента на заказ, то где код который будет редиректить? то есть если брать из сессии order id то наверное где то должна быть функция get_order чтоб url вытащить и по нему редирект сделать? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 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 заказа Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 @Kosjak76 прав При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url Вам нужно смотреть, что с сессией Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 1 минуту назад, alexivchenko сказал: @Kosjak76 прав При переходе, если в $_SESSION['order_id'] есть данные, допустим заказ №60 то клиенту на странице https://site.ru/order/ будет показана информация заказа №60 даже без url Вам нужно смотреть, что с сессией Вот это я и пытаюсь обьяснить) Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Нужно в index.php после session_start(); прописать print_r($_SESSION); и посмотреть, выводится ли [order_id] => Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 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 , доработка которая делает числовой , возможно из за нее и весь сыр бор? Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 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? Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 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; на 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 Изменено 17 февраля, 2022 пользователем alexivchenko Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 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 странная вещь, в режиме инкогнито не входя в админку, все супер, оформилось и редирект. а вот из под админки был вот такой трабл. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 1 минуту назад, Kami сказал: странная вещь, в режиме инкогнито не входя в админку, все супер, оформилось и редирект. а вот из под админки был вот такой трабл. надо смотреть где-то затирается сессия или задваивается может когда меняли код, забыли где-то убрать Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 Только что, alexivchenko сказал: надо смотреть где-то затирается сессия или задваивается может когда меняли код, забыли где-то убрать да вот в том то и дело что к этому сайту имею чисто дружеское отношение, поэтому попросили глянуть. В общем даже редирект не стал добавлять в Orderview, для юзера работает, при админе такая дичь. Сейчас буду смотреть что там с сессиями, спасибо тебе и Kosjak76 за помощь! Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.