Неправильное поведение онлайн-платежей в МS2

Всем привет!

При использовании онлайн-платежей в MS2 его поведение сбивает с толку. Если, скажем, выбрать вариант любой онлайн-оплаты (к примеру, Робокассу), то при нажатии submit, мы попадаем на сайт Робокассы. Если потом нажать стрелку «назад», то мы попадаем на пустую страницу «Оформление заказа». Это сбивает с толку, не понятно, что с заказом и почему пустая страница и пустая корзина. А должны бы попасть хотя бы на страницу «оплата не прошла, но заказ оформлен — с таким-то номером, и вот вам [[+payment_link]], если что-то там не срослось». Я понимаю, что пользователю придет письмо, но правильнее сразу сообщить, что все Ок, заказ есть, но оплата не случилось, попробуйте еще раз.

Кто нибудь решал эту проблему? Или хотя бы может подсказать, куда копать, чтобы ее решить? Дайте хотя бы направление, с самой реализацией я как нибудь разберусь.

Заранее всем спасибо!
Павел Ширяев
28 сентября 2015, 18:34
modx.pro
1 277
+1

Комментарии: 4

Василий Наумкин
29 сентября 2015, 03:25
0
И что здесь неправильного?

Юзер ушел на платежную систему, не подтвердил там ничего, не отменил, а вернулся на сайт, где у него уже оформлен заказ и очищена сессия.

Как сайт должен понять, что юзер вернулся с платёжной системы, если он ничего там не сделал и не вернулся по ссылке? Он просто открыл снова страницу с корзиной, которая уже пуста.

Минус от меня.
    Павел Ширяев
    29 сентября 2015, 10:20
    +1
    Например, уходить на оплату не с адреса /order.html, а с адреса order.html?msorder=123, чтобы пользователь обратно попадал на страницу оформленного заказа, а не в пустоту. Или не очищать сессию, если пользователь ушел на страницу оплаты до тех пор, пока не пришел ответ success или failure, либо пока пользователь не вернулся. Можно хоть десять минусов наставить, но это некорректное поведение магазина и вызывает вопросы у заказчиков. Главный вопрос в том, что
    Юзер ушел на платежную систему, не подтвердил там ничего, не отменил, а вернулся на сайт, где у него уже оформлен заказ и очищена сессия.
    сайт не показывает, что заказ таки оформился. Это очевидно для разработчика, но не обязательно очевидно для пользователя, который не обязан разбираться в том, как это все вообще происходит.
    Собственно, вопрос в том, как правильно поймать возвращение пользователя на сайт с платежной системы, чтобы показать ему не пустую страницу, а order.html?msorder=123 со вставкой, что оплата не прошла, и вот вам +payment_link.
      Василий Наумкин
      29 сентября 2015, 10:34
      +1
      Это первый подобный вопрос на моей памяти за всё время работы с miniShop2 и магазинами, что как бы намекает на масштабы «проблемы».

      Есть письмо о заказе, есть (должен быть) личный кабинет с заказами. К тому же ты, как программист, можешь расшить системные классы и изменить всю логику оформления заказа — это описано в документации.

      Но на мой взгляд, с логикой всё в порядке — юзер должен или оплатить заказ или отказаться от оплаты, для этого его и отправили на платёжный сервис.
      Если он такой продвинутый, что умеет пользоваться кнопками браузера, наверное должен и понимать что они делают.

      ходить на оплату не с адреса /order.html, а с адреса order.html?msorder=123
      И почему при заходе на order.html?msorder=123 в одном случае должен быть редирект на платёжный сервис, а в другом — вывод заказа?

      Или не очищать сессию
      Чтобы юзер смог наделать еще 10 одинаковых заказов. Он же не соображает, что происходит — из платежного сервиса ушел, а заказ всё еще не оформлен, корзина забита товарами.

      В общем, попробуй решить этот свой вопрос самостоятельно, и показать что получится. Тем более, что тебе эту работу заказчик оплачивает, у которого вопросы возникают.
Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
4