2017-01-06 3 views
0

Wie übermittle ich alle Formulardatenfunktion an URL von Drittanbietern. Angenommen, meine dritte URLLaravel 5 Funktion Redirect an Drittanbieter-URL

`http:\\www.abletoaccess.com\form\request` 

Für die Sicherheit Grund ist, ich will nicht auf diese URL zuzugreifen in form action Methode oder ich will nicht direkt Formulardaten veröffentlichen. Ich möchte, wenn ich das Formular absende alle Daten in meiner Funktion und umleiten zu Drittanbieter-URL mit Post-Daten und fügte weitere Parameter hinzu.

Jede Hilfe wird geschätzt !!!!

Antwort

1

Sie können die Anfrage von dem Controller verarbeiten und dann zeigen Ansicht und das automatische Senden an externe URL.

<div class="container"> 
    <div class="row"> 
     <div class="col-md-8 col-md-offset-2"> 
      <div class="panel panel-default"> 
       <div class="panel-heading"> 
        Page is loading... 
       </div> 
       <div class="panel-body"> 
        {!! Form::open(['url' => $externalUrl, 'method' => 'POST', 'class' => 'form-horizontal', 'id' => 'my-form']) !!} 
         @foreach ($fields as $key => $value) 
          {{ Form::hidden($key, $value) }} 
         @endforeach 
         {{ Form::hidden('signature', $signature) }} 
        {!! Form::close() !!} 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 
<script> 
    document.getElementById('my-form').submit(); 
</script> 
0

Zunächst scheint dies nicht Laravel spezifisches Problem zu sein.

Zweitens müssen Sie die CURL-Funktion in PHP überprüfen.

PHP CURL

+0

Ich kann nicht ROTATION verwenden, da der Dritte nicht –

0

Wenn Sie können, installieren Guzzle-Client, der mit diesen Dingen hilft.

Sie können den Client auf dem Controller übergeben und eine Post-Anforderung wie diese auf eine andere URL tun:

public function someMethod(GuzzleHttp\Client $client) 
{ 
    $client->post('http:\\www.abletoaccess.com\form\request', [ 
     'form_params' => [ 
      'param1' => 'something', 
      ... 
     ] 
    ]); 
}