Я только что столкнулся с ситуацией, когда я хочу поместить некоторые данные в удаленный URL. Помимо размещения данных с некоторой информацией заголовка, я также хочу, чтобы пользователь был перенаправлен на этот URL-адрес POST .
Позвольте мне объяснить здесь сценарий, я интегрирую третийучастник платежного шлюза в моем веб-приложении. Я использую Laravel . После цепочки вызовов API приложение отправляет платежные реквизиты в API. Результат API имеет сторонний URL (соответствующего банка), на который мне нужно взять пользователя для завершения процесса аутентификации. У меня есть пара данных и информация заголовка, чтобы взять с собой. Я пробовал Laravel Guzzle, но, как и cURL, когда мы отправляем данные POST, мы на самом деле получим ответ обратно в нашу сторону. Но не получаю переадресацию.
Если мне нужно перейти со стандартной формой HTML, как я могу опубликовать там информацию заголовка. Использование jQuery ajax может также вызвать такую же проблему, что я не могу перенаправить пользователя.
Я провел некоторый повторный поиск и попробовал что-то,
- С жадностью яЯ на самом деле могу показать содержимое HTML обратно пользователю, используя метод getBody, но HTML не обрабатывается правильно, изображения не работают (из-за относительного пути, который они используют на веб-страницах), а также ссылки икнопки не выводят меня в нужные места.
$response = $client->request('POST', $transactionResponse['redirectForm']['actionUrl'], [
'headers' => $transactionResponse['redirectForm']['headers'],
'form_params' => $transactionResponse['redirectForm']['content']
]);
echo $response->getBody();
Я также пробовал cURL с директивой CURLOPT_FOLLOWLOCATION, но он также возвращает ответ, не перенаправляя пользователя.
$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);
Может ли кто-нибудь иметь лучшую идею, чтобы решить это?