Problemas de rotas no laravel
[Finalizado Pelo Aluno]
Estou usando a api do mercado pago, e tudo funciona perfeitamente, porém para eu receber notificações do webhooks precisei informar um link para que o mercado pago me envie essas notificações e criei essa rota.
Route::get('tg/{tg}', 'MP\MercadoPagoTgController@getTG');
no mercado pago informei esse link
https://meusite.com/tg/
porém o mercado pago envia a notificação para meu link dessa forma.
https://meusite.com/tg/?code=TG-555566655-8995=id=525=
Mas o `?` antes do code=TG está dando erro 404.
Se eu retirar manualmente o `?` a rota é encontrada e tudo funciona.
tem como usar regex ou outra forma para ele receber as notificações sem falhas?
Route::get('tg/{tg}', 'MP\MercadoPagoTgController@getTG')->where('tg', regex ??????);
Olá, Wagner!
Tudo bem?
O problema não está no "?", mas sim provavelmente no verbo http (ou não).
Porque quando envia query params precisa usar o "?" para indicar os parâmetros da URL.
---------
A sua rota está errada também, se a URL de webhook é:
https://meusite.com/tg/?code=TG-555566655-8995=id=525=
A rota não deve declarar os querys params, deve ser assim:
Route::get('/tg', 'MP\MercadoPagoTgController@getTG');
E com o Request do Laravel você continua conseguindo pegar os querys params normalmente:
$request->code
Obrigado Carlos, era isso mesmo, muito obrigado.
Carlos deu certo de recuperar os dados, porém não consigo salvar no banco está dando erro de
SQLSTATE[HY000]: General error: 1364 Field 'access_token' doesn't have a default value
Alterei na middleware VerifyCsrfToken o atributo except
protected $except = [
'tg/*',
];
mas mesmo assim continua dando o erro.
Desculpa depois q percebi q estava faltando eu passar a variavel access_token.
Tudo certo então, posso finalizar o chamado?
Qualquer dúvida abre um novo ticket.
Precisa estar logado para conseguir responder a este ticket!
Clique Aqui Para Entrar!