TunnelHunt

Платёжные вебхуки на localhost: ЮKassa, Т-Банк, Robokassa и CloudPayments

3 мин чтения

Как проверить доставку платёжного вебхука на локальный сервер: HTTPS-туннель, выбор инструкции провайдера, подпись, повтор и диагностика HTTP-ответов.

Локальная проверка платёжного вебхука через HTTPS-туннель

Платёжный провайдер должен обратиться к вашему серверу из интернета. Он не может вызвать localhost:8000 на вашем компьютере. Для локальной проверки запустите обработчик и передайте к нему запрос через публичный HTTPS-туннель. Подпись, сумму и состояние заказа проверяет ваше приложение.

Этот обзор помогает выбрать инструкцию провайдера. Форматы уведомлений и ответы отличаются; универсальный обработчик не заменяет их протоколы.

1. Выберите инструкцию своей системы

Провайдер Что разбирает инструкция
ЮKassa Уведомления о состоянии платежа и проверка отправителя
Т-Банк Уведомления и проверка поля Token
Robokassa ResultURL, Password 2, Shp_, сумма счёта и ответ OK
CloudPayments Проверка HMAC по входящему запросу

Для реальной выдачи товара проверяйте актуальную документацию провайдера и состояние платежа. Возврат браузера на страницу успеха не заменяет серверное подтверждение.

2. Проверьте обработчик на локальном порту

Поднимите приложение по соответствующей инструкции. Отправьте искусственное уведомление сначала на локальный адрес. Например, для Flask-примера Robokassa из таблицы используйте подписанный POST к http://127.0.0.1:8000/webhook/robokassa и проверьте тело OK9001.

Запишите ожидаемый HTTP-статус и тело ответа: именно их нужно получить через туннель. GET в браузере не проверяет POST-вебхук, а ошибка подписи не означает неисправность сети.

3. Получите публичный HTTPS-адрес

Для Free добавьте публичный SSH-ключ в кабинет. Без регистрации действуют лимиты анонимной сессии: 15 минут и 100 МБ трафика в месяц.

Для обработчика на порту 8000 выполните:

ssh -p 2222 -o ExitOnForwardFailure=yes -R 80:127.0.0.1:8000 tunnelhunt.ru

Оставьте терминал открытым. Скопируйте HTTPS-адрес и добавьте тот же путь обработчика, который проверяли локально:

http://127.0.0.1:8000/webhook/robokassa
→ https://YOUR-SUBDOMAIN.tunnelhunt.ru/webhook/robokassa

Повторите искусственный POST по публичному адресу. Он должен дать тот же статус и тело. Если нет, пройдите диагностику localhost и туннеля до изменения настроек платёжной системы.

4. Проверьте доставку от провайдера

В тестовом окружении провайдера укажите полный URL уведомлений и запустите его тестовый сценарий. В приложении проверьте номер платежа, сумму, подпись или предусмотренный провайдером способ подтверждения. Тестовая доставка не доказывает прохождение реального платежа.

Результат Что делать
Запрос не появился локально Проверить URL, путь, SSH и запущенный процесс
404 или 405 Сверить маршрут и HTTP-метод
401 или 403 Сверить тестовые credentials и способ проверки подписи
500 Исправить ошибку обработчика или базы данных
200, но провайдер не принял уведомление Сверить тело ответа с его протоколом
Повтор создал второй заказ Добавить идемпотентность по идентификатору события/платежа

5. Повторите событие после изменения кода

В кабинете откройте «Логи», найдите тестовый запрос и используйте Replay. Проверьте, что повтор не создаёт второй заказ и не выдаёт товар дважды. Для рабочего обработчика подтверждение платежа и выдача доступа должны сохраняться согласованно, с защитой от параллельных повторов.

В логах могут оказаться секретные заголовки и данные покупателя. Для публичных демонстраций используйте искусственные данные и отдельное тестовое окружение.

Когда нужен постоянный адрес

Для одной проверки достаточно Free: 1 ГБ в месяц, один туннель, сессия до 4 часов. Если после переподключения приходится менять URL уведомлений, Pro за 199 ₽/месяц даёт резервирование поддомена, 50 ГБ и до 5 активных туннелей.

После активации Pro зарезервируйте имя в разделе «Туннели», привяжите SSH-ключ и переподключитесь с ним. Проверьте адрес из терминала и укажите его у провайдера. Постоянный URL сохраняет имя; приложение, SSH и компьютер всё равно должны работать. Для восстановления SSH используйте autossh.

Проверьте платёжный webhook до деплоя

Выберите инструкцию своего провайдера, запустите тестовый обработчик и проверьте ответ. Постоянный поддомен на Pro поможет сохранить адрес уведомлений между сеансами разработки.

Free: 1 ГБ трафика в месяц, 1 туннель, сессия до 4 часов. Pro: 199 ₽/месяц, 50 ГБ, до 5 туннелей и резервирование поддомена. Компьютер, приложение и SSH-соединение должны работать; постоянный адрес сохраняет имя, а не доступность выключенного сервера.

Готовы запустить свой первый туннель?

Начните использовать TunnelHunt бесплатно уже сегодня и откройте доступ к локальному серверу всего одной командой.

Зарегистрироваться бесплатно →

По теме

Локальное тестирование вебхуков ЮKassa (YooKassa) через TunnelHunt

Локальное тестирование вебхуков ЮKassa (YooKassa) через TunnelHunt

22 июня 2026 г.

Пошаговый гайд по настройке уведомлений ЮKassa (YooKassa) на локальном сервере. Как пробросить порт, прописать URL в личном кабинете и проверить цифровую подпись.

Читать далее →
Локальное тестирование вебхуков CloudPayments через TunnelHunt

Локальное тестирование вебхуков CloudPayments через TunnelHunt

22 июня 2026 г.

Пошаговый гайд по отладке уведомлений о платежах CloudPayments на localhost. Как настроить адреса уведомлений, пробросить туннель и верифицировать подпись HMAC-SHA256 в Python.

Читать далее →
Проверка ResultURL Robokassa через локальный обработчик и HTTPS-туннель

Robokassa ResultURL на localhost: подпись, OK и повтор уведомления

22 июня 2026 г.

Проверяем ResultURL Robokassa локально: Flask, подпись MD5 с Password 2 и Shp_, сумма счёта, ответ OK и диагностика через HTTPS-туннель.

Читать далее →
Как повторить вебхук: отладка HTTP-запросов через Replay

Как повторить вебхук: отладка HTTP-запросов через Replay

20 июня 2026 г.

Получите тестовый вебхук, найдите ошибку и повторите запрос после исправления. Рабочий пример на Python, диагностика подписей и ограничения Replay.

Читать далее →