Как правильно организовать переход пользователя с сайта на платёжный сервис(через форму или из контроллера)?
Добрый день всем. Есть страница checkout. На ней собраны данные (товары корзины и данные пользователя).
Если бы была одна платёжная система, я бы просто на этой странице сделал форму и отправил эти данные на сервис. Но так как систем много, я решил что правильнее для них сделать отдельный контроллер. И в зависимости от выбора сервиса, подставлять в action формы ссылку на соответствующую страницу с обработчиком.
Но теперь я столкнулся с проблемой. Из контроллера я могу сделать пост-запрос на платёжный сервис, но проблема в том что пользователь то не перейдет на эту страницу. И я пока не знаю правильно ли я делаю. Буду признателен за помощь в этом вопросе.
Аяксом обращаетесь к контроллеру, он выдает поля запроса, подставляете их в форму на странице и делаете этой форме сабмит, переводящий пользователя на сайт платежной системы. Тоже бином Ньютона...
Adamos, спасибо. Конечно не хотелось бы аяксом, но если других вариантов нет то наверно прийдется. Проблема ещё в том что формы для разных сервисов отличаются, потому и хотелось сделать отдельно.
semki096, так в том и цимес, что вы можете на стороне сервера и заказ создать, и для формы подготовить все данные - и требуемые поля, и подпись, и адрес ПС. Все равно же POST-запрос с переходом будет.
semki096, в обработчике ajax-ответа добавляете соответствующие input в предварительно заготовленную пустую форму, прописываете ей соответствующий action и делаете ей submit.
Если платёжная система требует переход пользователя пост-запросом, выведите пользователю пост-форму и отправьте её javascript-ом. На случай, если у него javascript отключён, выведите кнопку и сообщение с просьбой эту кнопку нажать.