Laravel 5.2在提交时将表单发布到外部URL

时间:2016-05-19 04:46:26

标签: php laravel laravel-5.2

我正在使用第三方付款服务。

<form name="form1" method="post" action="https://exampledomain.com/postpayment.php">
<input type="hidden" name="CRESecureID" value="1"/>
<input type="hidden" name="trans_type" value=" 2"/>
<input type="hidden" name="content_template_url" value="https://example.com/enterpaymentdetails.html"/>
<input type="hidden" name="allowed_types" value=" 3"/>
<input type="hidden" name="total_amt" value="$payment->amount"/>
<input type="hidden" name="collect_total_amt" value="$payment->total"/>
<input type="hidden" name="sess_id" value="e91dd8af53j35k072s0bubjtn7"/>
<input type="hidden" name="sess_name" value="session"/>
<input type="hidden" name="return_url" value="https://example.com/return.html"/>

<p><label> <input type="submit" name="submit" value="submit"/> </label></p>

如何正确地将这些变量发送到外部网址?我应该在控制器中做吗?一个例子会有所帮助。

由于

3 个答案:

答案 0 :(得分:5)

实现这一目标的最佳方法是:

将表单数据发布到您自己的URL之一,然后使用Guzzle客户端或curl请求将此数据发布到所需的外部URL。

此方法可帮助您跟踪外部网址的响应,并根据需要进行操作或使用。

希望这有帮助。

答案 1 :(得分:1)

您可以在控制器上执行此操作,一种好方法是在控制器上获取这些变量,将它们传递到存储库/服务层,执行所有验证检查,一旦一切正常,通过CURL POST发送它们。

您可以使用Request来验证表单字段。验证,处理和发送。

以下是通过CURL post发送数据的代码

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "URL_OF_API");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 100);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFieldsArray);
$data = curl_exec($ch);
curl_close($ch);

答案 2 :(得分:0)

尝试在表单操作中添加双正斜杠

E.g。 <form action="{{'//newsite.com/whatever'}}" >

就是这样。