Taxa de erro de aproximadamente 90% com webhooks Stripe, resposta imprevisível. Problema no servidor?

Taxa de erro de aproximadamente 90% com webhooks Stripe, resposta imprevisível. Problema no servidor?

Estou configurando webhooks do Stripe pela primeira vez. Fiz centenas de solicitações de teste e tive uma taxa de erro em torno de 90%. É imprevisível o motivo das falhas ocorrerem.

As respostas de falha no painel do Stripe são:

Timed out connecting to remote host

ou

Failed to connect to remote host

Meu webhook (simplifiquei para teste). Aproximadamente 10% das vezes, recebo uma resposta 200 com {received: true}:

expressRouter.route('/hooks').post( async (req, res) => {

  const event = req.body;

  console.log("Event:");
  console.log(event);

  // Handle the event
  switch (event.type) {
    case 'payment_intent.succeeded':
      const paymentIntent = event.data.object;
      // Then define and call a method to handle the successful payment intent.
      // handlePaymentIntentSucceeded(paymentIntent);
      break;
    case 'payment_method.attached':
      const paymentMethod = event.data.object;
      // Then define and call a method to handle the successful attachment of a PaymentMethod.
      // handlePaymentMethodAttached(paymentMethod);
      break;
    // ... handle other event types
    default:
      console.log(`Unhandled event type ${event.type}`);
  }

  // Return a response to acknowledge receipt of the event
  res.json({received: true});
})

Eu tentei essas duas maneiras de definir o gancho, e também com e sem assíncrono:

expressRouter.route('/hooks').post( async (req, res) => {
  ...
})
// and 
app.post("/hooks", async (req, res) => {
  ...
})

Entrei em contato com o suporte do Stripe e tentei todas as sugestões. Eles me deixaram com as seguintes possibilidades:

É possível que haja uma rede lenta envolvida ou algum outro problema de roteamento.

O provedor de host também pode precisar permitir o endereço IP de entrega do Stripe. Para sua informação, eles podem estar sendo bloqueados antes de chegar ao seu servidor

Adicionei os IPs do Stripe ao iptables, por exemplo:

iptables -I INPUT -p tcp -s 3.18.12.63 -j ACCEPT

Estou executando meu servidor Hostinger VPS com Caddy no Ubuntu 18.04. Isso pode ser um problema com a configuração do meu servidor? Qualquer conselho é muito apreciado.

Responder1

Parece que está funcionando.

Eu instalei o ngrok via apt (https://ngrok.com/download)

Em seguida, siga isto: youtube.com/watch?v=S1uExj7mMgM&ab_channel=Twilio e configure o ngrok para encaminhar para localhost:4000:

ngrok http 4000

Acabei de enviar uma série de solicitações e todas foram bem-sucedidas. Não tenho certeza de como isso funciona/por que precisei disso, mas estou muito feliz por ter funcionado. Se alguém puder explicar por que não estava funcionando sem isso, por favor me avise!

informação relacionada