2015-11-04 3 views
3

Я хочу отправить пользователя в платежный шлюз. Обычно это может быть сделано по этой форме:Laravel 5: как перенаправить данные с внешнего контроллера формы ресурса

<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> 

Пользователь нажимает «Оплатить» и перенаправляет на платежные ворота.

Но я хочу реализовать этот рабочий процесс:

  1. пользователя ввести информацию о доставке, способ оплаты и т.д.
  2. После этого он нажмите «Оплатить» и
  3. Во-первых, я хочу, чтобы хранить данные (я это в моем контроллере) ...
  4. ... и после этого я хочу перенаправить пользователя на платежный шлюз. (это неясно для меня)

Вопрос: как перенаправить пользователя на внешний ресурс с контроллера (метод должен быть POST, и мне нужно отправить некоторые данные, такие как MNT_ID и т. д. (см. пример формы выше ?)

+0

Вероятно, уже ответил на вопрос: http://stackoverflow.com/questions/18770184/laravel-4-make-post-request-from-controller-to -external-url-with-data – Amarnasan

ответ

0

Это может помочь вам использовать контроллер Laravel, как обычно, и перенаправление после на внешний ресурс

по вашему мнению перенаправить действия на контроллере:.

<form method="post" action={{ action('[email protected]') }}> 
    <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> 

в вашем Contr Oller:

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

+0

'return Redirect :: away (" https://demo.moneta.ru/assistant.htm ") -> withInputs (Input :: all());' не помогите. Как я могу видеть в проводнике браузера браузера: запрос GET и данных в запросе нет. BTW, я добавляю 'Input :: all()', потому что без него произошла ошибка. – pupadupa

+0

Вы правы, это запрос GET, а 'withInputs()' требуется 'Input: all()' как параметр. Вы пытались проверить форму через запрос AJAX (чтобы вы могли проверить и сохранить свои данные) и перенаправить на внешнюю сторону браузера? –

Смежные вопросы