Webhook от внешнего сервиса не может попасть на обычный localhost напрямую. Для тестирования нужен публичный HTTPS-адрес или туннель.
Почему возникает проблема
Сервис отправляет запрос из интернета. Локальный сервер за NAT недоступен, а иногда дополнительно мешают HTTPS, firewall, неверный endpoint, подпись запроса или ответ не тем статусом.
Что проверяю
- Какой URL указан в настройках webhook.
- Доступен ли он из интернета.
- Используется ли HTTPS.
- Логируются ли входящие запросы.
- Правильно ли сервер отвечает на проверочный запрос.
Как решаю задачу
Я настраиваю тестовую цепочку так, чтобы видеть каждый входящий запрос, заголовки, тело и ответ локального сервера.
- Поднимаю локальный endpoint.
- Настраиваю публичный туннель.
- Подставляю HTTPS URL в сервис.
- Проверяю подпись и формат события.
- Добавляю логирование и обработку повторов.
Что будет на выходе
- Webhook доходит до локального сервера.
- Можно отлаживать интеграцию без деплоя на production.
- Ошибки запроса видны сразу.
- Переход на сервер проходит проще.
Что подготовить
- Какой сервис отправляет webhook.
- Локальный endpoint.
- Формат ожидаемого события.
- Нужна ли проверка подписи.
Вопросы и ответы
Можно ли использовать ngrok?
Да, это один из вариантов. Можно использовать и другие туннели или dev-сервер с HTTPS.
Почему сервис отключает webhook?
Если endpoint долго не отвечает или возвращает ошибки, сервис может временно остановить доставку.
Нужна похожая задача?
Опишите, что именно не работает и где это видно. Я быстро разберу симптомы, проверю техническую причину и предложу понятный план исправления без лишних созвонов и затяжки.