PAY.ZNN: единый платёжный шлюз для наших продуктов
PAY.ZNN — внутренний платёжный шлюз, который объединяет приём и учёт платежей для всех текущих и будущих проектов ZNN. Решение построено на Go + Gin (высокопроизводительный бэкенд и вебхуки) и Next.js. Система собирает и нормализует информацию о платежах из собственных и партнёрских сервисов и предоставляет оплату по коду: пользователю достаточно ввести/сканировать код счёта, чтобы перейти к оплате и отслеживанию статуса.
Клиенты/Проекты ──> PAY.ZNN API (Go/Gin)
│
├─ Инвойсы / Платёжные сессии
├─ Агрегатор провайдеров (коннекторы)
├─ Вебхуки провайдеров (idempotent)
└─ Хранилище событий и статусов
Технологический фундамент
- Backend: Go + Gin — высокая производительность, низкие накладные расходы, устойчивость под нагрузкой.
- Frontend: Next.js — гибкие пользовательские потоки оплаты, операторская панель, SSR/ISR для быстрого отклика.
- Интеграции: коннекторы к провайдерам и партнёрским сервисам, унифицированные статусы и коды ошибок.
Ключевая ценность
- Единая точка входа. Один API вместо множества SDK и разнородных протоколов.
- Нормализация данных. Сопоставимые статусы, единые поля и причины отказов независимо от провайдера.
- Оплата по коду. Быстрый сценарий для клиента: код → страница оплаты → статус в реальном времени.
- Наблюдаемость. Полная история событий: инвойсы, транзакции, уведомления, ретраи.
- Гибкость интерфейсов. Быстрая сборка витрин и встраиваемых потоков без изменения ядра.
Архитектура (обзор)
- API-шлюз. Приём запросов от проектов, управление инвойсами и платёжными сессиями, нотификации.
- Коннекторы провайдеров. Унификация статусов, ошибок и полей; управление политиками повтора.
- Менеджер инвойсов. Жизненный цикл счёта: создание, ожидание, оплата, ошибка, истечение срока; TTL и продления.
- Хранилище событий. Полный аудит для отладки инцидентов и аналитики.
- Панель управления. Поиск, фильтры, операции с инвойсами, отчёты для финансов и поддержки.
- Публичный поток оплаты по коду. Быстрый путь для конечного пользователя с автообновлением статуса.
Сценарии использования
Оплата по коду
- Клиент получает код счёта (включая поддержу QR).
- Переходит на страницу оплаты, видит сумму, валюту, описание и доступные методы.
- Завершает оплату и наблюдает статус; система автоматически обрабатывает входящие уведомления.
Операторская работа
- Поиск инвойсов по коду, проекту, контактам; фильтры по датам, валютам и статусам.
- Просмотр истории событий и уведомлений, повторная отправка нотификаций.
- Экспорт отчётов для бухгалтерии и BI.
Интеграция проекта
- Создание инвойса, получение кода/ссылки на оплату и подписка на уведомления о смене статусов.
- Возможность встраивания компонент оплаты в продуктовые интерфейсы.
Безопасность и надёжность
- Проверка подлинности уведомлений и защита от повторной обработки.
- Минимизация чувствительных данных: хранится только необходимый набор полей.
- Ролевые модели и аудит в панели: гранулярные права и журнал действий.
- Идемпотентные операции для создания и обновления инвойсов.
- Наблюдаемость и алёртинг: метрики производительности и стабильности провайдеров.
Комплаенс и набор требований зависят от подключаемых методов и договоров с партнёрами; архитектура учитывает практики безопасной обработки платежей.
Модель данных (упрощённо)
Инвойс
- Идентификатор, код, проект, сумма и валюта, описание, статус, срок действия.
Платёж
- Связь с инвойсом, провайдер и его ссылка, сумма, комиссия, статус, причина/код ошибки при наличии.
Событие
- Тип, время, сущность, краткое содержимое; единая лента для инвойсов, платежей и уведомлений.
Статусы унифицированы (например: ожидается, оплачен, ошибка, истёк, возвращён) поверх специфик каждого провайдера.
Панель управления
- Сводка: динамика поступлений, разрез по проектам и провайдерам.
- Поиск и фильтры: коды, контакты, статусы, суммы, даты.
- Карточка инвойса: история событий, связанные платежи, уведомления, доступные операции.
- Отчёты: экспорт для финансовых процессов и аналитики.
Интеграция с продуктами ZNN
- Быстрый старт: создание счёта и выдача кода/ссылки для клиента.
- Глубокая интеграция: встраиваемые пользовательские потоки на базе интерфейса PAY.ZNN и общих компонентов.
- Нотификации: централизованные уведомления о статусах для синхронизации продуктовых систем.
Производительность
- Высокая пропускная способность и низкая задержка благодаря стеку Go + Gin.
- Устойчивость при пиковых нагрузках за счёт правильных таймаутов, политик повторов и ограничений.
Ключевые акценты дизайна
-
Фирменный зеленый и белый для стабильной иерархии и визуальной приемственности.
-
Много «стекла»: слои с мягким размытием и бликами, создающими глубину и ощущение чистоты интерфейса без лишнего визуального шума.
-
Fancy-friendly подход: крупная типографика, плавные микроанимации, скругления и аккуратные тени — чтобы продукт ощущался современным и «живым».
-
Слайд-элементы на главной: модульные секции-слайды с ключевыми метриками, сценарием оплаты и интеграциями; поддержка свайпа и клавиатурной навигации.
-
Доступность и практичность: контраст, понятные состояния фокуса, предсказуемые интеракции и устойчивость к перегрузке контентом на разных разрешениях.
Мария, Дизайнер: "В PAY.ZNN мы опирались на фирменный неоново-зелёный акцент и «стеклянную» эстетику интерфейса. Это позволило сохранить технологичность продукта и сделать его «fancy-friendly» — визуально премиальным, но дружелюбным и понятным с первого экрана. Главная страница построена вокруг слайд-элементов: они помогают последовательно рассказывать о возможностях шлюза, не перегружая пользователя деталями."
Итог
PAY.ZNN стандартизирует платёжные процессы в экосистеме ZNN: единый API, унифицированные статусы и операторская панель. Это ускоряет запуск новых проектов, снижает риск интеграций и делает платёжную инфраструктуру предсказуемой, масштабируемой и управляемой.
Использованные технологии
Достигнутые результаты
+20% скорость разработки
+80% скорость запуска интернет магазинов
Хотите создать похожий проект?
Расскажите о вашей идее, и мы поможем её реализовать