Цель проекта
На сайте уже работает обработка разовых платежей через платёжный шлюз. Необходимо реализовать полноценную систему рекуррентных платежей (подписок), чтобы после первой успешной оплаты подписка активировалась, а последующие списания проходили автоматически.
Текущая проблема
- После первой оплаты подписка у клиента не создаётся.
- Повторные списания не происходят.
- Отсутствует привязка карты и управление подпиской.
Основные задачи
1. Настройка первого платежа с параметрами рекуррентности
- Модификация процесса оплаты для передачи необходимых флагов и параметров, указывающих на создание подписки.
- Корректное сохранение токена или криптограммы карты после успешной оплаты.
2. Обработка callback-уведомлений от платёжного шлюза
- Настройка и защита эндпоинтов для приёма вебхуков.
- Обработка различных статусов платежей (успех, отказ, отмена).
- Обновление статуса подписки пользователя на основе полученных уведомлений.
3. Хранение и управление данными подписки
- Создание структуры в базе данных для хранения:
- Статуса подписки (активна, приостановлена, отменена).
- Даты следующего списания.
- Истории всех транзакций по подписке.
- Токена сохранённой карты.
- Привязка подписки к учётной записи пользователя.
4. Автоматизация последующих списаний
- Реализация механизма (например, cron-задача или очередь) для запуска регулярных списаний по расписанию (например, раз в месяц).
- Интеграция с API платёжного шлюза для проведения повторных транзакций с использованием сохранённого токена карты.
- Обработка результатов списания и обновление данных подписки.
5. Функционал отмены подписки
- Реализация возможности для пользователя отменить подписку в личном кабинете.
- Реализация возможности для администратора системы приостановить или отменить подписку.
- Корректная остановка будущих списаний при отмене.
Требования к результату
- Полностью рабочая система рекуррентных платежей.
- Надёжное хранение данных и безопасная работа с платёжными токенами.
- Чёткий процесс обработки успешных и неуспешных списаний.
- Интерфейс для управления подпиской для пользователя и администратора.
- Документация по реализованной логике и API.