Como corrigir um erro de webhook do Stripe (TLS e eventos de entrega)
Publicados: 2021-05-13Usamos o Stripe, juntamente com o PayPal, para aceitar pagamentos para nosso negócio de plugins WordPress. Nós amamos Stripe; é fácil de usar e tem tudo o que você deseja como desenvolvedor. Embora tenhamos muitos problemas com o PayPal, o Stripe tem sido bastante impecável. No entanto, como em qualquer serviço, às vezes surgem problemas.

Hoje vou orientá-lo sobre como solucionar um erro de webhook do Stripe, TLS e eventos de entrega.
- E-mail do problema de entrega do webhook Stripe
- Verificando eventos de endpoint do webhook
- Como corrigir um erro de TLS de webhook
- Como corrigir o bloqueio do webhook
E-mail do problema de entrega do webhook Stripe
A maioria de vocês provavelmente não está verificando o log de eventos no Stripe em relação aos webhooks regularmente; Eu sei que não. Portanto, como eu, você provavelmente ouviu falar primeiro sobre um erro de webhook do Stripe em um e-mail do Stripe. É hora de largar tudo o que você está fazendo e solucionar o motivo pelo qual o webhook está com problemas. O meu, claro, chegou numa tarde de sexta-feira.
O e-mail do Stripe provavelmente lerá algo assim abaixo. Estou usando um erro TLS resumido como exemplo:
Tivemos alguns problemas para enviar solicitações no modo ao vivo para um ponto de extremidade de webhook associado à sua conta…
A URL do ponto de extremidade do webhook com falha é: https://domain.com/index.php?edd-listener=stripe
Tentamos enviar notificações de eventos para este endpoint x vezes desde a primeira falha na data/hora. Se esse endpoint for importante para seu aplicativo, tente corrigir o problema. Pararemos de enviar notificações de eventos para este ponto de extremidade de webhook por data/hora.”
x tiveram um erro de TLS, indicando que o Stripe não conseguiu estabelecer uma conexão segura com seu servidor. Você pode gerar uma análise detalhada sobre a configuração de TLS do seu host (https://ssllabs.com/ssltest/) para identificar erros comuns.
Você precisa retornar qualquer código de status entre HTTP 200 a 299 para que o Stripe considere o evento de webhook entregue com sucesso.
Você pode encontrar o conjunto completo de eventos e logs de solicitações no painel.
Seu,
A equipe Strip
O importante é não entrar em pânico. Abaixo, mostrarei algumas maneiras fáceis de solucionar os problemas e algumas das coisas que tivemos que corrigir com nossa implementação do Stripe.
Verificando eventos de endpoint do webhook
A primeira coisa a fazer é verificar os eventos registrados para seus pontos de extremidade de webhook do Stripe. Vá para o painel do Stripe e, no lado esquerdo, clique em “Webhooks” no menu Desenvolvedor.
Nesta tela, você poderá ver todos os seus endpoints do Stripe e, a parte mais importante, a taxa de erro nos últimos 7 dias. Se você acabou de receber um e-mail do Stripe dizendo que eles tentaram x número de vezes para chegar ao seu endpoint, provavelmente verá uma taxa de erro bastante alta.

Se você classificar as tentativas de webhook por "Falha", poderá ver facilmente todas as tentativas e o motivo da falha. Alguns erros comuns de webhook do Stripe incluem erro de TLS, tempo limite e 500 (erro de servidor interno).

Como corrigir um erro de TLS de webhook
Encontramos pessoalmente um erro de TLS do webhook do Stripe. Aqui está o que você deve fazer.
- Verifique seu certificado SSL verificando seu site com a ferramenta SSL Server Test da Qualys. A primeira coisa a confirmar é que seu certificado é válido e que não está faltando nenhum certificado intermediário. Se estiver, tente adicionar novamente seu certificado SSL com seu provedor de hospedagem. Este é provavelmente um dos motivos mais comuns para a ocorrência de um erro de TLS.
- Confirme a versão do TLS compatível com seu provedor de hospedagem. O Stripe suporta até TLS 1.2 no momento em que foi escrito.
- Se você tiver um proxy ou WAF na frente do seu site, precisará executar as etapas 1 e 2 novamente, pois o webhook do Stripe atingirá o proxy/WAF primeiro.
Quando encontramos nosso erro de TLS, o problema ocorreu devido à mudança para o Cloudflare. Nosso domínio Cloudflare tinha a versão mínima do TLS definida como TLS 1.3. (1,0 é o padrão). Como o Stripe suporta apenas a versão 1.2 no momento, começamos a encontrar um erro de webhook. Demorou um pouco para nós rastrearmos isso.


Como corrigir o bloqueio do webhook
O Stripe precisa se comunicar com seu servidor para que tudo funcione corretamente. Portanto, se você estiver recebendo um tempo limite ou até mesmo um erro 500, pode ser que você esteja bloqueando acidentalmente o webhook do Stripe. Aqui está o que você deve fazer.
- Se você estiver executando o WordPress e um plug-in de segurança, verifique se ele não está bloqueando nenhuma conexão do Stripe.
- Verifique com seu provedor de hospedagem se eles estão permitindo o Stripe e não bloqueando seus IPs.
- Se você estiver executando o WAF como o Cloudflare, talvez seja necessário adicionar uma regra de permissão ao firewall com os IPs do Stripe. O firewall da Cloudflare não usa nomes de host, então você precisará usar seus IPs. Eu recomendo adicionar os IPs para api.stripe.com e suas notificações de webhook. Você pode verificar o log de atividades e compará-lo com a lista de IPs do Stripe para confirmar que é um problema da Cloudflare.

Aqui está a expressão completa para a regra de firewall da Cloudflare com seus IPs a partir de 2021:
(Ip.src em 13.112.224.240 13.115.13.148 13.210.129.177 13.210.176.167 13.228.126.182 13.228.224.121 13.230.11.13 13.230.90.110 13.55.153.188 13.55.5.15 13.56.126.253 13.56.173.200 13.56.173.232 13.57.108.134 13.57.155.157 13.57.156.206 13.57.157.116 13.57.90.254 13.57.98.27 18.194.147.12 18.195.120.229 18.195.125.165 34.200.27.109 34.200.47.89 34.202.153.183 34.204.109.15 34.213.149.138 34.214.229.69 34.223.201.215 34.237.201.68 34.237.253.141 34,238. 187,115 34.239.14.72 34.240.123.193 34.241.202.139 34.241.54.72 34.241.59.225 34.250.29.31 34.250.89.120 35.156.131.6 35.156.194.238 35.157.227.67 35.158.254.198 35.163.82.19 35.164.105.206 35.164.124.216 50.16.2.231 50.18.212.157 50,18 .212.223 50.18.219.232 52.1.23.197 52.196.53.105 52.196.95.231 52.204.6.233 52.205.132.193 52.211.198.11 52.212.99.37 52.213.35.125 52.22.83.139 52.220.44.249 52.25.214.31 52.26.11.205 52.26.132.102 52.26.14.11 52.36.167.221 52.53.133.6 52.54.150.82 52.57.221.37 52.59.173.230 52.62.14.35 52.62.203.73 52.63.1 06,9 52.63.119.77 52.65.161.237 52.73.161.98 52.74.114.251 52.74.98.83 52.76.14.176 52.76.156.251 52.76.174.156 52.77.80.43 52.8.19.58 52.8.8.189 54.149.153.72 54.152.36.104 54.183.95.195 54.187.182.230 54.187.199.38 54,187 .208.163 54.238.140.239 54.65.115.204 54.65.97.98 54.67.48.128 54.67.52.245 54.68.165.206 54.68.183.151 107.23.48.182 107.23.48.232 3.18.12.63 3.130.192.231 13.235.14.237 13.235.122.149 35.154.171.200 52.15.183.38 54.187.174.169 54.187.205.235 54.187.216.72 54.241.31.99 54.241.31.102 54.241.34.107)
Resumo
Espero que algumas dessas dicas tenham sido úteis para solucionar seus erros de webhook do Stripe. Se você tiver alguma dúvida ou outras etapas que funcionaram para você, eu adoraria ouvi-las. Deixe um comentário abaixo.
