Aviso: As URLs de notificação deste artigo dizem respeito apenas à lojas com Magento 1 ou Magento 2 e não se aplicam à lojas com WooCommerce. Para WooCommerce veja o artigo Como posso saber se o retorno do PagSeguro está funcionando?.
Configuração de Retorno de dados no PagSeguro
Você não precisa e não deve configurar o retorno automático no site do PagSeguro. Aqui você encontra alguns motivos pelos quais o PagSeguro pode não conseguir atualizar o status de um pedido em sua loja.
Bloqueio do Provedor ou Site fora do ar
Alguns provedores de hospedagem bloqueiam as notificações vindas do PagSeguro erroneamente. Para validarmos se isso está acontecendo precisamos ver no nosso painel do PagSeguro se as notificações ao menos foram enviadas.
Para fazer isso, basta acessar os detalhes de uma transação (pedido) no painel do PagSeguro e localizar o link
Ao clicar nesse link, uma lightbox é exibida com as tentativas que o PagSeguro tentou realizar.
O código HTTP Status, quando 200 indica que a notificação foi recebida com sucesso, o que provavelmente não é o seu caso.
Se o modo debug (Magento 1 e 2) estiver ativo nas configurações do seu módulo, esse código de notificação deverá estar lá em uma mensagem parecida com
2014-05-16T13:27:33+00:00 DEBUG (7): Recebido notificacao do pagseguro com os parametros:array (
'notificationCode' => 'BCDCB6A409060906070774489F9B99E27C4F',
'notificationType' => 'transaction',
)
ou no Magento 2:
[2019-08-26 00:02:00] main.DEBUG: Return of the Pagseguro to notificationCode BCDCB6A409060906070774489F9B99E27C4F ...
Se essa mensagem não aparece no seu arquivo var/log/pagseguro.log o mais provavel é que a notificação não tenha chegado como esperado.
Por fim, para verificarmos se existe realmente um bloqueio, podemos simular a chamada do PagSeguro a partir da nossa própria máquina, já que ela não estaria bloqueada no servidor da nossa loja. Para fazer isso, vamos ao terminal (ou postman) e simule a chamada com o seguinte comando:
curl -X POST -H "Cache-Control: no-cache" -H "Content-Type: application/x-www-form-urlencoded" -d 'notificationCode=53520D-DE53E753E70A-B22403EFBACD-A9E081¬ificationType=transaction' "http://minhaloja.com.br/pseguro/notification"
Lembre-se de substituir o url de notificação e o código da transação pelos obtidos no seu painel do pagseguro na imagem acima.
Se preferir use o formulário abaixo para fazer um teste manual (Magento 1 e 2, não válido para WooCommerce).
Se tudo funcionar como esperado, você poderá ver os detalhes da notificação no seu painel magento, nos comentários do pedido em questão, o que indica que realmente há um bloqueio do seu servidor, já que a requisição manual funcionou com sucesso.
Em geral, o código 503 ou 403 é exibido como retorno do seu servidor na imagem acima, no caso de bloqueio por firewall ou regra do servidor.
Se você utiliza algum sistema de cache acima do magento, talvez você precise fazer com que a url de retorno não passe por ele.
Lista de IP's do PagSeguro (LEGADO)
186.234.48.8/29
186.234.144.16/29
186.234.145.201
186.234.48.206
186.234.51.18
186.234.51.19
186.234.147.82
186.234.147.83
186.234.48.10
186.234.48.113
186.234.144.17
186.234.144.18
Devido a arquitetura da aplicação responsável pelo envio das notificações da nova API, o PagBank não tem um range fixo de IPs.
Estas são as máscaras de subrede usadas pelo PagSeguro para realizar notificações. Garanta que estes IP's estejam liberados em seu firewall ou provedor de hospedagem. Caso contrário as notificações e atualizações de pedidos não serão processadas.
Note que os dois primeiros são máscaras/faixas de IPs. Se você não tem como liberar os IP's desta forma, clique nos IPs para ver a lista de IP's que deve liberar.
Lembre-se: o ideal é que você libere o URL de notificação para qualquer IP, e não apenas os IPs listados aqui, pois eles podem mudar sem prévio aviso.
Jakarta & Nginx
A equipe de infra da WideCommerce notou (e contribuiu aqui) que há também um bloqueio de segurança em algumas configurações de servidores do tipo Nginx que bloqueiam o User-Agent do tipo Jakarta, usado por scripts maliciosos, mas também usado pelo PagSeguro ao enviar as notificações. Veja se este User-Agent não está sendo bloqueado nas suas configurações do Nginx.
Artigos relacionados
- Usuários Cloudflare e CDN's
- Pedidos não atualizam no Magento 2.3+.
- Como posso saber se o retorno do PagSeguro está funcionando?
- Falha ao processar retorno XML do PagSeguro
Comentários
0 comentário
Artigo fechado para comentários.