Я хочу отправить пользователя в платежный шлюз. Обычно это можно сделать по этой форме:
<form method="post" action="https://demo.moneta.ru/assistant.htm"> <input type="hidden" name="MNT_ID" value="12345678"> <input type="hidden" name="MNT_TRANSACTION_ID" value="000001"> <input type="hidden" name="MNT_CURRENCY_CODE" value="USD"> <input type="hidden" name="MNT_AMOUNT" value="123.45"> <input type="submit" value="Pay"> </form>
Пользователь нажимает «Оплатить» и перенаправляется на платежные ворота.
Но я хочу реализовать этот рабочий процесс:
Возникает вопрос: как перенаправить пользователя на внешний ресурс с контроллера (метод должен быть POST, и мне нужно отправить некоторые данные, такие как MNT_ID и т. Д. (См. Пример формы выше)?
Это может помочь вам использовать контроллер Laravel как обычно и перенаправить после внешнего ресурса.
По вашему мнению перенаправить действие на ваш контроллер:
<form method="post" action={{ action('Controller@method') }}> <input type="hidden" name="MNT_ID" value="12345678"> <input type="hidden" name="MNT_TRANSACTION_ID" value="000001"> <input type="hidden" name="MNT_CURRENCY_CODE" value="USD"> <input type="hidden" name="MNT_AMOUNT" value="123.45"> <input type="submit" value="Pay"> </form>
В вашем контроллере:
public function method(Request $request) { // Validate // Store // ... Redirect::away('https://demo.moneta.ru/assistant.htm')->withInputs(Input::all()); }
Я не тестировал его, но я уверен, что он работает (или близок к решению).
Вы можете получить другое предложение из официального руководства: http://laravel.com/docs/5.1/responses#redirects