我刚遇到一种情况,我想将一些数据发布到远程URL。除了发布数据以及一些标头信息外,我还希望将用户重定向到该POST网址。
在这里让我解释一下情况,我正在将第三方支付网关集成到我的Web应用程序中。我正在使用 Laravel 。一连串的API调用之后,该应用正在向该API提交付款明细。 API结果确实具有(相应银行的)第三方URL,我需要将其带给用户以完成身份验证过程。我有几个数据和标头信息。我已经尝试过Laravel Guzzle,但是像cURL一样,当我们提交POST数据时,我们实际上会将响应返回到我们的身边。但是没有被重定向。
如果我必须使用标准的html表单,该如何在其中发布标题信息。使用jQuery ajax可能也会引起相同的问题,我无法重定向用户。
我做了一些重新搜索并尝试了一些东西,
$response = $client->request('POST', $transactionResponse['redirectForm']['actionUrl'], [
'headers' => $transactionResponse['redirectForm']['headers'],
'form_params' => $transactionResponse['redirectForm']['content']
]);
echo $response->getBody();
我也使用CURLOPT_FOLLOWLOCATION指令尝试了cURL,但是它也会返回响应,而不重定向用户。
$post = [
'username' => 'user1',
'password' => 'passuser1',
'gender' => 1,
];
$ch = curl_init('http://localhost/laravel/arax_v1/paytm/callback');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'location: http://localhost/laravel/arax_v1/paytm/callback'
));
// execute!
$response = curl_exec($ch);
// close the connection, release resources used
curl_close($ch);
有人能更好地解决这个问题吗?