Перейти к содержимому
IMOEX 2209.84 0.9%
·Технологии·31 июля 2026 г.

Как я тестировал платёжную кассу локально, не задеплоив ни строчки

Как я тестировал платёжную кассу локально, не задеплоив ни строчки

Контекст: я пилю сервис туннелей (грубо — свой ngrok: берёт локальный порт и вешает на него публичный адрес с валидным TLS). В какой-то момент дошёл до денег — прикрутил онлайн-кассу, чтобы люди могли оплачивать платные тарифы. И тут же упёрся в классическую стену: кассу невозможно протестировать на localhost.

Проблема в том, что касса общается с тобой асинхронно и по своей инициативе. Пользователь оплатил на стороне платёжки — платёжка шлёт тебе вебхук (IPN, callback, notification — называют по-разному): «заказ такой-то оплачен, выдавай услугу». Этот запрос идёт снаружи к тебе. А у твоего ноутбука нет публичного адреса, и касса при всём желании не достучится до http://127.0.0.1:8080/api/tariff/crypto-callback. Пока callback-URL недоступен из интернета, ты протестируешь ровно ничего дальше кнопки «оплатить».

Обычно это лечат деплоем: залил на стейдж, потыкал, нашёл опечатку в парсинге тела вебхука, снова залил. Цикл в несколько минут на каждую однострочную правку. И вот я сижу, смотрю на этот цикл, смотрю на свой недоделанный сервис туннелей, назначение которого — прокидывать локальные порты в интернет ровно для таких случаев… и до меня доходит, что инструмент для решения моей проблемы я держу в руках. Точнее, пишу.

Это отрывок статьи. Полную версию читайте на сайте источника по ссылке ниже.

Источник: Habr