Электронная коммерция

PAY.ZNN: единый платёжный шлюз для наших продуктов

PAY.ZNN — внутренний платёжный шлюз, который объединяет приём и учёт платежей для всех текущих и будущих проектов ZNN. Решение построено на Go + Gin (высокопроизводительный бэкенд и вебхуки) и Next.js. Система собирает и нормализует информацию о платежах из собственных и партнёрских сервисов и предоставляет оплату по коду: пользователю достаточно ввести/сканировать код счёта, чтобы перейти к оплате и отслеживанию статуса.

Логотип ZNNКлиент: ZNN
11 августа 2025 г.
Время чтения: 8 минут
Платежная системаПлатежный шлюз
PAY.ZNN: единый платёжный шлюз для наших продуктов
Клиенты/Проекты ──> PAY.ZNN API (Go/Gin)
                      │
                      ├─ Инвойсы / Платёжные сессии
                      ├─ Агрегатор провайдеров (коннекторы)
                      ├─ Вебхуки провайдеров (idempotent)
                      └─ Хранилище событий и статусов

Технологический фундамент

  • Backend: Go + Gin — высокая производительность, низкие накладные расходы, устойчивость под нагрузкой.
  • Frontend: Next.js — гибкие пользовательские потоки оплаты, операторская панель, SSR/ISR для быстрого отклика.
  • Интеграции: коннекторы к провайдерам и партнёрским сервисам, унифицированные статусы и коды ошибок.

Ключевая ценность

  • Единая точка входа. Один API вместо множества SDK и разнородных протоколов.
  • Нормализация данных. Сопоставимые статусы, единые поля и причины отказов независимо от провайдера.
  • Оплата по коду. Быстрый сценарий для клиента: код → страница оплаты → статус в реальном времени.
  • Наблюдаемость. Полная история событий: инвойсы, транзакции, уведомления, ретраи.
  • Гибкость интерфейсов. Быстрая сборка витрин и встраиваемых потоков без изменения ядра.

Архитектура (обзор)

  • API-шлюз. Приём запросов от проектов, управление инвойсами и платёжными сессиями, нотификации.
  • Коннекторы провайдеров. Унификация статусов, ошибок и полей; управление политиками повтора.
  • Менеджер инвойсов. Жизненный цикл счёта: создание, ожидание, оплата, ошибка, истечение срока; TTL и продления.
  • Хранилище событий. Полный аудит для отладки инцидентов и аналитики.
  • Панель управления. Поиск, фильтры, операции с инвойсами, отчёты для финансов и поддержки.
  • Публичный поток оплаты по коду. Быстрый путь для конечного пользователя с автообновлением статуса.

Сценарии использования

Оплата по коду

  1. Клиент получает код счёта (включая поддержу QR).
  2. Переходит на страницу оплаты, видит сумму, валюту, описание и доступные методы.
  3. Завершает оплату и наблюдает статус; система автоматически обрабатывает входящие уведомления.

Операторская работа

  • Поиск инвойсов по коду, проекту, контактам; фильтры по датам, валютам и статусам.
  • Просмотр истории событий и уведомлений, повторная отправка нотификаций.
  • Экспорт отчётов для бухгалтерии и BI.

Интеграция проекта

  • Создание инвойса, получение кода/ссылки на оплату и подписка на уведомления о смене статусов.
  • Возможность встраивания компонент оплаты в продуктовые интерфейсы.

Безопасность и надёжность

  • Проверка подлинности уведомлений и защита от повторной обработки.
  • Минимизация чувствительных данных: хранится только необходимый набор полей.
  • Ролевые модели и аудит в панели: гранулярные права и журнал действий.
  • Идемпотентные операции для создания и обновления инвойсов.
  • Наблюдаемость и алёртинг: метрики производительности и стабильности провайдеров.

Комплаенс и набор требований зависят от подключаемых методов и договоров с партнёрами; архитектура учитывает практики безопасной обработки платежей.


Модель данных (упрощённо)

Инвойс

  • Идентификатор, код, проект, сумма и валюта, описание, статус, срок действия.

Платёж

  • Связь с инвойсом, провайдер и его ссылка, сумма, комиссия, статус, причина/код ошибки при наличии.

Событие

  • Тип, время, сущность, краткое содержимое; единая лента для инвойсов, платежей и уведомлений.

Статусы унифицированы (например: ожидается, оплачен, ошибка, истёк, возвращён) поверх специфик каждого провайдера.


Панель управления

  • Сводка: динамика поступлений, разрез по проектам и провайдерам.
  • Поиск и фильтры: коды, контакты, статусы, суммы, даты.
  • Карточка инвойса: история событий, связанные платежи, уведомления, доступные операции.
  • Отчёты: экспорт для финансовых процессов и аналитики.

Интеграция с продуктами ZNN

  • Быстрый старт: создание счёта и выдача кода/ссылки для клиента.
  • Глубокая интеграция: встраиваемые пользовательские потоки на базе интерфейса PAY.ZNN и общих компонентов.
  • Нотификации: централизованные уведомления о статусах для синхронизации продуктовых систем.

Производительность

  • Высокая пропускная способность и низкая задержка благодаря стеку Go + Gin.
  • Устойчивость при пиковых нагрузках за счёт правильных таймаутов, политик повторов и ограничений.

Ключевые акценты дизайна

  • Фирменный зеленый и белый для стабильной иерархии и визуальной приемственности.

  • Много «стекла»: слои с мягким размытием и бликами, создающими глубину и ощущение чистоты интерфейса без лишнего визуального шума.

  • Fancy-friendly подход: крупная типографика, плавные микроанимации, скругления и аккуратные тени — чтобы продукт ощущался современным и «живым».

  • Слайд-элементы на главной: модульные секции-слайды с ключевыми метриками, сценарием оплаты и интеграциями; поддержка свайпа и клавиатурной навигации.

  • Доступность и практичность: контраст, понятные состояния фокуса, предсказуемые интеракции и устойчивость к перегрузке контентом на разных разрешениях.

Мария, Дизайнер: "В PAY.ZNN мы опирались на фирменный неоново-зелёный акцент и «стеклянную» эстетику интерфейса. Это позволило сохранить технологичность продукта и сделать его «fancy-friendly» — визуально премиальным, но дружелюбным и понятным с первого экрана. Главная страница построена вокруг слайд-элементов: они помогают последовательно рассказывать о возможностях шлюза, не перегружая пользователя деталями."

Итог

PAY.ZNN стандартизирует платёжные процессы в экосистеме ZNN: единый API, унифицированные статусы и операторская панель. Это ускоряет запуск новых проектов, снижает риск интеграций и делает платёжную инфраструктуру предсказуемой, масштабируемой и управляемой.

Использованные технологии

GONext.jsDockerGinWebpayPostgresMongo

Достигнутые результаты

🎯

+20% скорость разработки

🎯

+80% скорость запуска интернет магазинов

Хотите создать похожий проект?

Расскажите о вашей идее, и мы поможем её реализовать