Kami Опубликовано 15 февраля, 2022 Жалоба Поделиться Опубликовано 15 февраля, 2022 (изменено) При настройке робокассы указываю Success Url - https://site.ru/order/ Fail Url - https://site.ru/order/ Но при возврате кидает на страницу https://site.ru/order/ ну и соответственно 404. Кто недавно ставил робокассу? Может что поменялось? Кстати на сайте дорабатывался url заказа.(не мной) , по сути переделан в числовой чтоб можно было отслеживать заказ. Изменено 15 февраля, 2022 пользователем Kami Цитата Ссылка на сообщение Поделиться на другие сайты
a13x Опубликовано 16 февраля, 2022 Жалоба Поделиться Опубликовано 16 февраля, 2022 В 15.02.2022 в 11:34, Kami сказал: Success Url - https://site.ru/order/ тут не хватает идентификатора заказа, а так как он у всех уникальный, то его надо передавать в кнопке оплаты. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 (изменено) 19 часов назад, a13x сказал: тут не хватает идентификатора заказа, а так как он у всех уникальный, то его надо передавать в кнопке оплаты. По сути идентификатор дергает callback.php $order_id = intval($_POST['InvId']); Мы получается дергаем с пост запроса id по нему тащим весь заказ $order = $simpla->orders->get_order(intval($order_id)); Потом уже проверяем статус списываем товары и редиректим на страницу заказа. header('Location: ' . $simpla->config->root_url . '/order/' . $order->url, true, 302); В инструкции робокассы указывается что надо указать Success Url - https://site.ru/order/ Fail Url - https://site.ru/order/ Ну и корректную ссылку на callback В общем callback отрабатывает ( заказ становится оплачен, переносится в другую группу) А вот редирект не срабатывает. Точно нужно что то передавать с кнопкой? плагин взял тут - https://github.com/kvalood/Robokassa Просто что то ума не дам , это на стороне робокассы тупо редирект идет, и надо указать callback который в свою очередь средиректит уже куда нужно или разбираться что где в движке сделали. Платежный плагин не правил Изменено 17 февраля, 2022 пользователем Kami Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Робокасса отработала нормально. Тут нужно смотреть на работу callback. Если статус заказ меняется и он становится оплачен. Дальше должна быть отправка писем покупателю и админу, может быть ошибка отправки и происходит остановка. Дальше нужно распечатать $order->url и посмотреть вывод Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 27 минут назад, alexivchenko сказал: Робокасса отработала нормально. Тут нужно смотреть на работу callback. Если статус заказ меняется и он становится оплачен. Дальше должна быть отправка писем покупателю и админу, может быть ошибка отправки и происходит остановка. Дальше нужно распечатать $order->url и посмотреть вывод Допустим , есть заказ №60 перехожу по ссылке site.ru/payment/Robokassa/callback.php?InvId=60 То есть передаю ему номер заказа 60, но по факту if(empty($order)) die('Оплачиваемый заказ не найден'); Срабатывает это условие, что $order пустая. Что то совсем не врубаюсь что ему надо. Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 7 минут назад, Kami сказал: Допустим , есть заказ №60 перехожу по ссылке site.ru/payment/Robokassa/callback.php?InvId=60 То есть передаю ему номер заказа 60, но по факту if(empty($order)) die('Оплачиваемый заказ не найден'); Срабатывает это условие, что $order пустая. Что то совсем не врубаюсь что ему надо. Хотя по идее передаю же в пост запросе id заказа $order_id = intval($_POST['InvId']); site.ru/payment/Robokassa/callback.php?InvId=60 Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 9 минут назад, Kami сказал: Хотя по идее передаю же в пост запросе id заказа $order_id = intval($_POST['InvId']); site.ru/payment/Robokassa/callback.php?InvId=60 Так там получение id заказа методом POST а не GET Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 5 минут назад, alexivchenko сказал: Так там получение id заказа методом POST а не GET Для теста, замените $order_id = intval($_POST['InvId']); на $order_id = intval($_GET['InvId']); И проверяйте site.ru/payment/Robokassa/callback.php?InvId=60 Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 7 минут назад, alexivchenko сказал: Так там получение id заказа методом POST а не GET а блин .Точно, но по факту получается робокасса не возвращает постом номер заказа, хотя при отправке заказа и его оплате все передается и оплата на робокассе проходит как надо // Установим статус оплачен $simpla->orders->update_order(intval($order->id), $order_update); // Спишем товары $simpla->orders->close(intval($order->id)); Ну раз это срабатывает, то значит в принципе $order->id на месте. Получается как мне посмотреть что прилетает POST запросом с робокассы? Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 26 минут назад, Kami сказал: а блин .Точно, но по факту получается робокасса не возвращает постом номер заказа, хотя при отправке заказа и его оплате все передается и оплата на робокассе проходит как надо // Установим статус оплачен $simpla->orders->update_order(intval($order->id), $order_update); // Спишем товары $simpla->orders->close(intval($order->id)); Ну раз это срабатывает, то значит в принципе $order->id на месте. Получается как мне посмотреть что прилетает POST запросом с робокассы? die(print_r($_POST)); Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 3 минуты назад, alexivchenko сказал: die(print_r($_POST)); Так пробовал , но при оплате и возврате в магазин, всё равно кидает на site.ru/order/ и без вариантов. Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 30 минут назад, Kami сказал: Так пробовал , но при оплате и возврате в магазин, всё равно кидает на site.ru/order/ и без вариантов. Нужно прописать не в конце файла die(print_r($_POST)); а допустим выше $order_id = intval($_POST['InvId']); Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 Только что, alexivchenko сказал: Нужно прописать не в конце файла die(print_r($_POST)); а допустим выше $order_id = intval($_POST['InvId']); Да собственно там и ловил Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 43 минуты назад, alexivchenko сказал: Нужно прописать не в конце файла die(print_r($_POST)); а допустим выше $order_id = intval($_POST['InvId']); В целом по инструкции в ЛК , настройки таковы https://disk.yandex.ru/i/jG_NPk9wZRk_vQ Я просто в целом взаимодействие не пойму. По callback проходит оплата , обновляется статус и т.д. с этим ок. Но ведь я в настройках указываю Success Url - https://site.ru/order/ И получается обработав callback он тупо редиректит на Success Url И соответственно получаю ту ссылку что записана в настройках. Хотя по сути в callback указывается редирект на страницу заказа. В общем как то запутано. Кто может обьяснить куда копать? Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 ResultUrl - это адрес, по которому отправляется callback для МАГАЗИНА. По этому адресу ваш магазин получает данные об оплате от Робокассы. Success Url и FailUrl - это адреса, по которым отправляется КЛИЕНТ, после оплаты в Робокассе По-моему, так это работает. По поводу урлов - их надо передавать в форме для Робокассы в Robokassa.php Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Кстати, посмотрел сейчас стандартный файл Robokassa.php - там все довольно забавно)) $success_url = $this->config->root_url.'/order/'.$order->url; $fail_url = $this->config->root_url.'/order/'.$order->url; Урлы формируются, но в Робокассу не передаются) Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 Только что, Kosjak76 сказал: Кстати, посмотрел сейчас стандартный файл Robokassa.php - там все довольно забавно)) $success_url = $this->config->root_url.'/order/'.$order->url; $fail_url = $this->config->root_url.'/order/'.$order->url; Урлы формируются, но в Робокассу не передаются) На это тоже обратил внимание, вообще к callback вопросов нет, полностью все отрабатывает как надо, а потом просто редиректит согласно настройкам в ЛК робокассы site.ru/order Ну вот поэтому и не пойму, как робокасса узнает что ей надо перейти по /$order->url Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Да, в робокассе не предусмотрено такого Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Вы путаете абсолютно РАЗНЫЕ вещи Во-первых - переадресацию КЛИЕНТА после оплаты на Success Url Во-вторых - взаимодействие Робокассы и МАГАЗИНА через ResultUrl и callback.php Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 Цитата На самом деле, переход пользователя по ссылке SuccessURL – это формальность, которая нужна только для того, чтобы пользователь вернулся обратно к Вам и получил информацию о том, что он сделал всё правильно, и его заказ ждёт его там-то и там-то. Проводить подтверждение оплаты у себя по базе и все остальные действия, связанные с выдачей покупки, Вам нужно при получении уведомления на ResultURL, потому что именно на него ROBOKASSA передаёт подтверждающие данные об оплате в автоматическом режиме (т. е. в любом случае и без участия пользователя). https://docs.robokassa.ru/#1261 Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 1 минуту назад, Kosjak76 сказал: Вы путаете абсолютно РАЗНЫЕ вещи Во-первых - переадресацию КЛИЕНТА после оплаты на Success Url Во-вторых - взаимодействие Робокассы и МАГАЗИНА через ResultUrl и callback.php По сути все взаимодействие должно строиться же на callback правильно? Пост запросом получили все данные которые пришли с робокассы, нашли и подтянули заказ, и уже работая с заказом, пометили флагом оплачен ,перенесли и отправили письмо. в конце сделали редирект и всё header('Location: ' . $simpla->config->root_url . '/order/' . $order->url, true, 302); По сути вот так я вижу. То есть сейчас даже копать куда не знаю, по сути $order , пост приходящий с робокассы поймать не получается. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 По идее, при переходе по Success Url пользователю показывается заказ, который он сделал и ID которого находится в $_SESSION['order_id'] Цитата Ссылка на сообщение Поделиться на другие сайты
alexivchenko Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 В 15.02.2022 в 11:34, Kami сказал: При настройке робокассы указываю Success Url - https://site.ru/order/ Fail Url - https://site.ru/order/ Но при возврате кидает на страницу https://site.ru/order/ ну и соответственно 404. Кто недавно ставил робокассу? Может что поменялось? Кстати на сайте дорабатывался url заказа.(не мной) , по сути переделан в числовой чтоб можно было отслеживать заказ. в Robokassa/callback.php есть header('Location: ' . $simpla->config->root_url . '/order/' . $order->url, true, 302); возможно идет верный редирект на страницу https://site.ru/order/ и должно быть подставлен url заказа, но так как у вас url был переделан видимо есть какие-то проблемы с выводом $order->url Цитата Ссылка на сообщение Поделиться на другие сайты
Kami Опубликовано 17 февраля, 2022 Автор Жалоба Поделиться Опубликовано 17 февраля, 2022 2 минуты назад, Kosjak76 сказал: https://docs.robokassa.ru/#1261 Ну да, по сути там и кнопок нет, после оплаты. Сразу после оплаты автоматом редиректит на сайт. Цитата Ссылка на сообщение Поделиться на другие сайты
Kosjak76 Опубликовано 17 февраля, 2022 Жалоба Поделиться Опубликовано 17 февраля, 2022 БЛИН, ЕЩЕ РАЗ ДЛЯ ОСОБО ОДАРЕННЫХ КЛИЕНТ НИКОГДА НЕ ПОПАДАЕТ НА callback НИКОГДА!!!!!!!!!!!!! Именно поэтому там НЕТ никаких редиректов НЕТ и НЕ НАДО Цитата Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.