Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
https://www.liqpay.ua/ru/doc/callbackсудя по всему - server_url вполне валидный параметр.Учти, что route возвращает (по дефолту) относительный путь, может нужен абсолютный?
Возвращается полный урл, когда руками перехожу по урлу route('check-payment'), то попадаю в метод
Для тестов в формирование формы пихал 'result_url' свою ссылку, и она перебивала редирект-ссылку после оплаты
Так как нету доступа к ЛК заказчика
В логах ничего не падает?Со всеми эквайрингами, с которыми я работал, я задавал callback страницу в настройках своего аккаунта на самом сервисе эквайринга - там ссылка корректная?Можно еще access log глянуть.
Разве 'server_url' => route('check-payment'), не перебивает заданную ссылку в ЛК на сайте?
Посылаю запрос в liqpay
$html = $liqpay->cnb_form(array(
'action' => 'pay',
'amount' => $totalPrice,
'sandbox' => 1,
'currency' => 'UAH',
'server_url' => route('check-payment'),
'description' => 'Оплата заказа № ' . $order->id,
'order_id' => $order->id,
'version' => '3'
));
Оплата происходит, но при попытке записи в файл массива с ответом, не создается даже файл (папка которую пытаюсь создать для теста тоже не создается), такое чувство что callback даже не попадает в метод:
public function checkPayment(Request $request)
{
File::makeDirectory(public_path('test'), 777, true, true);
file_put_contents(base_path('test.txt'), json_encode($request->input()));
}
Роут:
Route::any('/checkout/check-payment', 'Catalog\OrderController@checkPayment')->name('check-payment');
Специально уже сделал any для тестов Спасибо за помощь
Из доков:Все cookie, создаваемые Laravel, шифруются и подписываются специальным кодом
А каким образом декодировать или сравнить со значением в бд?
Если делаю дамп а аякс обработчике "Cookie::get('cart_hash')", то хеши совпадают, если в другом контролере, то дампится тот большой хеш
Пишу корзину для магазина
При добавлении товара в корзину, проверяю есть ли у пользователя кука "cart_hash", если ее нету, то устанавливаю пользователю куку и заношу запись в БД
public function createRow()
{
$hash = $this->generateHash();
dump($hash);
$this->hash = $hash;
if (Auth::check()) {
$this->user_id = Auth::user()->id;
}
$this->save();
Cookie::queue(Cookie::forever('cart_hash', $hash));
dump($hash);
return $this;
}
public function generateHash()
{
return sha1(microtime() . Str::random());
}
В обеих дампах хеш одинаковый, но в БД записывается "0304d9d1b4389ea75c11a6466d793ef88ea8e56f", а в куки "eyJpdiI6IjM0NGErU2FnaGluYnI3WHlwRXhwcHc9PSIsInZhbHVlIjoiYUtrN016Y3JFb1BNdlhpR3RuMUt3VGlXS3NaXC9CRDROakNaaUFidXVCS0RnczdYMDhWZ2pvVG4yWk5XRjlKYzBDZUd6S3R1TjRrZ1FPZmpLOW51MUdnPT0iLCJtYWMiOiI5MTQ2ZjkzNGViMjJiOWUwYjYwYWE1ZTU1MGFhYzEwYTU1NzhlNGExNzQ4M2NiZGI1ZGI2YWNmZDlmM2ZjYzZhIn0"
Из-за чего это может происходить, и как мне дальше эти хеши сравнивать?
В админке есть список пользователей, в настройках пользователя должна быть возможность авторизоваться на сайте под этим пользователем, не могу придумать как это реализовать. Сейчас по клике на кнопку направляю админа по роуту "/fake-login" с id пользователя, в контроллере принимаю этот id, что делать дальше, в голову не приходит
Спасибо за помощь
Страницы 1