Мне нужно post
данные для платежной службы (payment.com) и redirect
для payment.com (для заполнения номера кредитной карты и т. Д.)
Традиционный способ сделать этонапример:
<form id="form" action="payment.com" method="POST">
</form>
<script type="text/javascript">
document.getElementById('form').submit();
</script>
Но я хочу сделать это через controller
, а не отправлять форму, поэтому никакие данные не могут быть изменены.
Это мой метод контроллера, и я пробовал два способа: redirect()
и Guzzle
- Я пытался
redirect()
на URL с данными постов, но я получил «Метод GET не поддерживается для этого маршрута. Поддерживаемые методы: POST.»
public function postToPaymentServer(Request $request)
{
$amount=$request['amount'];
$payment=[
'amount'=>$amount,
'auth-id'=>config('auth-id')
];
return redirect(url('api/payment/server'))->with(compact('payment'));
}
ps.Здесь я сделал локальный маршрут для имитации payment.com в маршрутах / api.php
Route::post('payment/server','PaymentController@server');
Я пытался использовать
Guzzle
, но он
не будет перенаправлять на URL-адрес поста .
public function postToPaymentServer(Request $request)
{
$amount=$request['amount'];
$payment=[
'amount'=>$amount,
'auth-id'=>config('auth-id')
];
$client = new Client();
$response = $client->post('payment.com',[
'body'=>[
'payment'=>$payment,
'allow_redirects' => true
],
]);
return $response;
}
Любые предложения будут с благодарностью!