Разрабатываю проект на Laravel 8. Столкнулся с такой проблемой: работаю с платежной системой для приема платежей. Когда пользователь совершает оплату, callback от платежной системы приходит на определенный адрес, потом обрабатывается и приходит методом POST на мой сайт. Затем отслеживаю это в web.php и передаю в контроллер. В контроллере мне нужно изменить данные о пользователе, который совершил оплату, но когда пытаюсь узнать о нем через
Auth::user(), ничего не работает. Также пытался отследить id пользователя через
Auth::id(), но тоже безрезультатно. Когда проверяю
Auth::check() говорит о том, что пользователь неавторизован. Как можно решить эту проблему?
web.php
Route::post('/payment', [RateController::class, 'payment'])->name('payment');
RateController:
public function payment(Request $request) {
if($request->input('status') == 'done') {
$user = Auth::user();
$user->rate = $request->input('rate');
$user->save();
}
}
Прием callback:
<?php
$str = file_get_contents('php://input');
$object = json_decode($str, true);
$url = 'https://findinvestor.me/payment';
$params = array(
'rate' => 'bronze',
'status' => $object['status'],
);
$result = file_get_contents($url, false, stream_context_create(array(
'http' => array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => http_build_query($params)
)
)));
?>