Jump to content

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


Recommended Posts

При настройке робокассы указываю 

Success Url -  https://site.ru/order/

Fail Url -  https://site.ru/order/

Но при возврате кидает на страницу  https://site.ru/order/  ну и соответственно 404.

Кто недавно ставил робокассу? Может что поменялось?

Кстати на сайте дорабатывался url заказа.(не мной) , по сути переделан в числовой чтоб можно было отслеживать заказ.

 

 

Edited by Kami
Link to post
Share on other sites
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 который в свою очередь средиректит уже куда нужно или разбираться что где в движке сделали.

Платежный плагин не правил

Edited by Kami
Link to post
Share on other sites

Робокасса отработала нормально.

Тут нужно смотреть на работу callback. Если статус заказ меняется и он становится оплачен. Дальше должна быть отправка писем покупателю и админу, может быть ошибка отправки и происходит остановка. Дальше нужно распечатать $order->url и посмотреть вывод 

Link to post
Share on other sites
27 минут назад, alexivchenko сказал:

Робокасса отработала нормально.

Тут нужно смотреть на работу callback. Если статус заказ меняется и он становится оплачен. Дальше должна быть отправка писем покупателю и админу, может быть ошибка отправки и происходит остановка. Дальше нужно распечатать $order->url и посмотреть вывод 

Допустим , есть заказ №60

перехожу по ссылке site.ru/payment/Robokassa/callback.php?InvId=60

То есть передаю ему номер заказа 60, но по факту 

if(empty($order))
	die('Оплачиваемый заказ не найден');

Срабатывает это условие, что $order пустая. Что то совсем не врубаюсь что ему надо.

Link to post
Share on other sites
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

Link to post
Share on other sites
9 минут назад, Kami сказал:

Хотя по идее передаю же в пост запросе id заказа


$order_id = intval($_POST['InvId']);

site.ru/payment/Robokassa/callback.php?InvId=60

Так там получение id заказа методом POST а не GET

Link to post
Share on other sites
5 минут назад, alexivchenko сказал:

Так там получение id заказа методом POST а не GET

Для теста, замените 

$order_id = intval($_POST['InvId']);

на 

$order_id = intval($_GET['InvId']);

И проверяйте site.ru/payment/Robokassa/callback.php?InvId=60

Link to post
Share on other sites
7 минут назад, alexivchenko сказал:

Так там получение id заказа методом POST а не GET

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

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

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

Ну раз это срабатывает, то значит в принципе $order->id на месте.

Получается как мне посмотреть что прилетает POST запросом с робокассы?

Link to post
Share on other sites
26 минут назад, Kami сказал:

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


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

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

Ну раз это срабатывает, то значит в принципе $order->id на месте.

Получается как мне посмотреть что прилетает POST запросом с робокассы?

die(print_r($_POST));

Link to post
Share on other sites
3 минуты назад, alexivchenko сказал:

die(print_r($_POST));

Так пробовал , но при  оплате и возврате в магазин, всё равно кидает на site.ru/order/

и без вариантов.

Link to post
Share on other sites
30 минут назад, Kami сказал:

Так пробовал , но при  оплате и возврате в магазин, всё равно кидает на site.ru/order/

и без вариантов.

Нужно прописать не в конце файла

die(print_r($_POST));

а допустим выше 

$order_id = intval($_POST['InvId']);

 

Link to post
Share on other sites
Только что, alexivchenko сказал:

Нужно прописать не в конце файла


die(print_r($_POST));

а допустим выше 


$order_id = intval($_POST['InvId']);

 

Да собственно там и ловил

Link to post
Share on other sites
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 указывается редирект на страницу заказа. В общем как то запутано. Кто может обьяснить куда копать?

Link to post
Share on other sites

ResultUrl - это адрес, по которому отправляется callback для МАГАЗИНА.

По этому адресу ваш магазин получает данные об оплате от Робокассы.

Success Url и FailUrl - это адреса, по которым отправляется КЛИЕНТ, после оплаты в Робокассе

По-моему, так это работает.

По поводу урлов - их надо передавать в форме для Робокассы в Robokassa.php

 

Link to post
Share on other sites

Кстати, посмотрел сейчас стандартный файл Robokassa.php - там все довольно забавно))

		$success_url = $this->config->root_url.'/order/'.$order->url;
		
		$fail_url = $this->config->root_url.'/order/'.$order->url;

Урлы формируются, но в Робокассу не передаются)

Link to post
Share on other sites
Только что, 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

Link to post
Share on other sites

Вы путаете абсолютно РАЗНЫЕ вещи

Во-первых - переадресацию КЛИЕНТА после оплаты на Success Url

Во-вторых - взаимодействие Робокассы и МАГАЗИНА через ResultUrl  и callback.php

Link to post
Share on other sites
Цитата

На самом деле, переход пользователя по ссылке SuccessURL – это формальность, которая нужна только для того, чтобы пользователь вернулся обратно к Вам и получил информацию о том, что он сделал всё правильно, и его заказ ждёт его там-то и там-то. Проводить подтверждение оплаты у себя по базе и все остальные действия, связанные с выдачей покупки, Вам нужно при получении уведомления на ResultURL, потому что именно на него ROBOKASSA передаёт подтверждающие данные об оплате в автоматическом режиме (т. е. в любом случае и без участия пользователя).

https://docs.robokassa.ru/#1261

Link to post
Share on other sites
1 минуту назад, Kosjak76 сказал:

Вы путаете абсолютно РАЗНЫЕ вещи

Во-первых - переадресацию КЛИЕНТА после оплаты на Success Url

Во-вторых - взаимодействие Робокассы и МАГАЗИНА через ResultUrl  и callback.php

По сути все взаимодействие должно строиться же на callback правильно? 

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

в конце сделали редирект и всё

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

По сути вот так я вижу. То есть сейчас даже копать куда не знаю, по сути $order , пост приходящий с робокассы поймать не получается. 

Link to post
Share on other sites
В 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

 

Link to post
Share on other sites

БЛИН, ЕЩЕ РАЗ

ДЛЯ ОСОБО ОДАРЕННЫХ

КЛИЕНТ НИКОГДА НЕ ПОПАДАЕТ НА callback 

НИКОГДА!!!!!!!!!!!!!

Именно поэтому там НЕТ никаких редиректов

НЕТ и НЕ НАДО

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...