Проектирование платформы обработки платежей

Отделите приём платежных событий, учёт денег, начисление внутренней валюты и доступ к тарифам. Повтор webhook не должен повторно начислять баланс.

Короткий ответ

Что ответить на собеседовании

Отделите приём платежных событий, учёт денег, начисление внутренней валюты и доступ к тарифам. Повтор webhook не должен повторно начислять баланс.

Подробный разбор

Ответ с пояснениями

Условие

Требуется спроектировать архитектуру системы, способной принимать платежи из множества источников, вести их учёт и собирать аналитические данные по каждому потоку. Система должна начислять внутреннюю валюту пользователям в зависимости от полученных средств. Кроме того, необходимо создать API, позволяющий по ID пользователя получать сведения о подключённом тарифном плане.

Ответ

Отделите приём платежных событий, учёт денег, начисление внутренней валюты и доступ к тарифам. Повтор webhook не должен повторно начислять баланс.

Адаптеры источников проверяют подлинность события и сохраняют его уникальный provider/event ID. Обработка в транзакции создаёт неизменяемую запись учёта, фиксирует статус платежа и начисление по сохранённому правилу конвертации. Деньги — целые минимальные единицы; возвраты и chargeback оформляют компенсационными проводками, не удалением истории.

Outbox доставляет события в аналитику и сервис тарифов. API пользователя проверяет полномочия и возвращает план, статус, начало и конец доступа. Нужны reconciliation с источниками, идемпотентность и аудит; пользовательский redirect не подтверждает платёж. Детали валют, комиссий и требований хранения согласуются отдельно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее