Перейти к основному содержимому

Как принимать вебхуки ЮKassa, Т-Банка и Stripe на localhost

Создайте в ProximaClient туннель HTTPS на порт вашего сервиса и впишите его ссылку с путём обработчика в настройки уведомлений платёжного сервиса: уведомления о платежах будут приходить в сервис на вашем компьютере, как на сервер в интернете.

Шаги​

  1. Запустите сервис на компьютере, например на localhost:3000, с обработчиком уведомлений, например /pay/notify.
  2. В ProximaClient откройте «Туннели» и нажмите «Создать туннель». Если туннели уже есть, это кнопка «+» над списком.
  3. В поле «Протокол» выберите HTTPS — «Сайт или API по своей ссылке https://». Адрес TCP-туннеля не подойдёт: платёжные сервисы присылают уведомления только на ссылку https://.
  4. В поле «Адрес назначения» укажите порт сервиса: localhost:3000.
  5. Нажмите «Создать туннель». Когда туннель подключится, скопируйте ссылку значком «Копировать публичный адрес».
  6. В личном кабинете платёжного сервиса, в настройках уведомлений (вебхуков), укажите ссылку с путём обработчика: https://ваша-ссылка/pay/notify.
  7. Проведите тестовый платёж и проверьте, что в логе вашего сервиса появился запрос на /pay/notify.

Если уведомление не пришло​

  • Сервис не запущен или слушает другой порт. Платёжный сервис получает ответ 502. Запустите сервис на порту из поля «Адрес назначения».
  • Путь в настройках не тот. Сверьте путь в настройках уведомлений с путём обработчика в коде.
  • Ссылка сменилась. Пока туннель работает, ссылка не меняется, а сколько она держится после закрытия, написано на странице «HTTPS-ссылка на localhost». Если туннель получил новую ссылку, впишите её в настройки уведомлений.
  • Ссылка закрыта логином. Платёжный сервис не знает вашего логина и получает ответ 401.

С версии приложения 1.3.0

Чтобы уведомления проходили на ссылку с логином, на вкладке «Безопасность», в разделе «Правила путей», добавьте правило для пути обработчика: «Только адреса» с адресами платёжного сервиса из его документации или «Без входа». Подробнее — на странице о логине и пароле для ссылки.

Как не пустить поддельное уведомление​

Ссылку может узнать кто угодно и прислать на неё «оплата прошла». Поэтому проверяйте подпись уведомления в коде по правилам платёжного сервиса. Т-Банк подписывает не все поля уведомления, а ЮKassa не подписывает уведомления совсем: перед выдачей товара проверяйте статус платежа запросом к Т-Банку (метод GetState) или к API ЮKassa.