~90% ошибок с веб-хуками Stripe, непредсказуемый ответ. Проблема с сервером?

~90% ошибок с веб-хуками Stripe, непредсказуемый ответ. Проблема с сервером?

Я впервые настраиваю вебхуки Stripe. Я сделал сотни тестовых запросов, и у меня был уровень ошибок около 90%. Невозможно предсказать, почему происходят сбои.

Реакции на сбои на панели управления Stripe могут быть следующими:

Timed out connecting to remote host

или

Failed to connect to remote host

Мой вебхук (я упростил его для тестирования). Примерно в 10% случаев я получаю ответ 200 с {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});
})

Я попробовал эти два способа определения хука, а также с асинхронностью и без нее:

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

Я связался со службой поддержки Stripe и попробовал все их предложения. Они оставили мне следующие возможности:

Возможно, проблема в медленной сети или в какой-то другой проблеме с маршрутизацией.

Провайдеру хостинга может потребоваться разрешить доставку данных через IP-адрес Stripe. К вашему сведению, они могут блокироваться до того, как попадут на ваш сервер.

Я добавил IP-адреса Stripe в iptables, например:

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

Я использую свой сервер Hostinger VPS с Caddy на Ubuntu 18.04. Может ли это быть проблема с настройками моего сервера? Любые советы будут оценены по достоинству.

решение1

Кажется, у меня это работает.

Я установил ngrok через apt (https://ngrok.com/download)

Затем следуйте этому: youtube.com/watch?v=S1uExj7mMgM&ab_channel=Twilio, и настройте ngrok для пересылки на localhost:4000:

ngrok http 4000

Я только что отправил кучу запросов, и все они были успешными. Я не совсем уверен, как это работает / зачем мне это было нужно, но я очень рад, что это работает. Если кто-то может объяснить, почему это не работало без этого, пожалуйста, дайте мне знать!

Связанный контент