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


Laravel 5.2 Post form to external URL on submit

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

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

如何将这些变量正确发送到外部URL?我应该在控制器中执行吗?举个例子会很有帮助。

感谢

实现这一点的最佳方法是:

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

这种方法将帮助您跟踪来自外部URL的响应,并在需要时操作或使用它。

希望这能有所帮助。

您可以在控制器上执行此操作,一个好的方法是在控制器上获取这些变量,将它们传递到存储库/服务层,执行所有验证检查,一旦一切正常,就通过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);

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

例如<form action="{{'//newsite.com/whatever'}}" >

仅此而已。