TunnelHunt Войти

Интеграция 1С-Битрикс: Как тестировать вебхуки от служб доставки локально

Автор: Команда TunnelHuntОпубликовано: 25 июня 2025 г.
Коробки с товарами, символизирующие интернет-магазин и доставку

Разработка для 1С-Битрикс часто ведется на локальной копии сайта, развернутой с помощью BitrixVM или другого окружения. Это удобно, но создает проблему при интеграции с внешними сервисами, которые общаются с сайтом через вебхуки (callback URL).

Классический пример — интеграция со службой доставки (например, СДЭК) или платежной системой. После изменения статуса заказа (e.g., “доставлен” или “оплачен”) их сервер отправляет POST-запрос на ваш сайт. Но как ему найти вашу локальную копию?

Задача: Принять вебхук на локальном сайте Битрикс

Предположим, вы написали кастомный обработчик в файле /api/delivery_status.php. Служба доставки должна отправлять запросы на URL https://vash-magazin.ru/api/delivery_status.php. Но ваш сайт работает на http://localhost.

Шаг 1: Запускаем локальный сайт

Убедитесь, что ваша локальная копия сайта на Битриксе запущена и доступна в браузере по адресу http://localhost (или другому, например http://bx-site.local). Для простоты будем считать, что он работает на 80 порту.

Шаг 2: Создаем публичный адрес с TunnelHunt

В терминале вашей BitrixVM или на хост-машине (в зависимости от настроек сети) выполните команду:

# Пробрасываем 80 порт нашего локального веб-сервера
ssh -R 80:localhost:80 -p 2222 nokey@tunnelhunt.ru

Если ваш сайт работает на другом порту, например 8888, команда будет ssh -R 80:localhost:8888 ...

Вы получите публичный URL, например https://random-url-123.tunnelhunt.ru.

Шаг 3: Настраиваем сервис доставки

В личном кабинете службы доставки укажите URL для вебхуков, используя адрес от TunnelHunt:

https://random-url-123.tunnelhunt.ru/api/delivery_status.php

Шаг 4: Отладка

Теперь, когда служба доставки отправит обновление, ее запрос пройдет через TunnelHunt и попадет в ваш скрипт delivery_status.php на локальной машине. Вы можете:

  • Добавить логирование в файл с помощью file_put_contents().
  • Использовать инструменты отладки вроде Xdebug, чтобы ставить точки останова и пошагово выполнять код.
  • Мгновенно видеть ошибки и вносить исправления.

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