2015-11-04 97 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. ...之後,我想重定向用戶付款門。 (不清楚這個對我來說)

的問題是:如何將用戶從控制器重定向到外部資源(方法應該是工作,我需要做的發送一些數據,如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> 

在你對照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,請求中沒有數據。順便說一句,我添加'輸入::所有()',因爲沒有它有一個錯誤。 – pupadupa

+0

你說得對,這是一個GET請求,'withInputs()'需要'Input:all()'作爲參數。你是否試圖通過AJAX請求驗證表單(這樣你可以驗證和存儲你的數據)並重定向到外部URL瀏覽器端? –

相關問題