Доделать настройку приёма платежей на сайте на вордпресс
Большое ТЗ - результат работы GPTChat, пожалуйста, не оценивайте объём работы по количеству слов :)
Техническое задание (ТЗ)
Цель проекта
Создать модуль для WordPress, который:- Принимает рекуррентные (ежемесячные) платежи через Т-банк.
- Сохраняет номер телефона клиента в базе данных.
- Генерирует ссылку для WhatsApp-группы после успешной оплаты.
- Автоматически проверяет успешность ежемесячных платежей, уведомляет администратора, если платеж не прошел, и прекращает обработку удаленных клиентов.
- Обеспечивает удобную админ-панель для управления данными клиентов и платежей.
1. Функциональные требования
1.1. Процесс работы для клиента:
- Клиент нажимает на кнопку оплаты.
- Всплывающее окно или форма запрашивает номер телефона.
- После ввода телефона:
- Телефон сохраняется в базе данных.
- Клиент перенаправляется на сайт Т-банка для ввода платежных данных.
- Т-банк информирует клиента о том, что это ежемесячный платеж.
- После успешной оплаты:
- Клиенту отправляется ссылка на WhatsApp-группу.
- Информация об оплате отправляется на email.
1.2. Автоматическая проверка платежей:
- Ежемесячно модуль проверяет, прошли ли рекуррентные платежи.
- Если оплата не прошла:
- Отправляется сообщение администратору на email с указанием номера клиента.
1.3. Управление через админ-панель:
- Раздел в админке WordPress:
- Таблица с номерами клиентов.
- Статусы ежемесячных оплат, для каждого номера в своё время проходит проверка.
- Возможность удалить клиента (удаление прекращает обработку рекуррентных платежей).
2. Технические требования
2.1. База данных:
- Создать таблицу в базе данных WordPress для хранения данных клиентов:
id
(уникальный идентификатор).phone
(номер телефона).status
(статус платежа: "активный", "неактивный").last_payment_date
(дата последней успешной оплаты).created_at
(дата добавления клиента).
2.2. Взаимодействие с Т-банком:
- Использовать API Т-банка для:
- Генерации токена для каждого платежа.
- Отправки данных клиента (номер телефона, сумма платежа).
- Получения статуса оплаты.
- Провести все необходимые тесты и получить подтверждение от Т-банка.
2.3. Email уведомления:
- Email:
- Использовать встроенные функции WordPress (
wp_mail
) для отправки уведомлений.
- Использовать встроенные функции WordPress (
2.4. Безопасность:
- Использовать nonce для защиты форм от CSRF-атак.
- Сохранять данные о клиентах в таблице базы данных WordPress.
2.5. Админ-панель:
- Создать страницу в разделе "Инструменты" или отдельное меню "Рекуррентные платежи".
- Отображать таблицу с данными клиентов:
- Номер телефона.
- Статус платежа.
- Дата последнего платежа.
- Возможность:
- Удалить клиента.
- Изменить статус вручную (например, если ошибка в API).
- Экспортировать данные в CSV.
3. Структура модульного кода
3.1. Файлы модуля:
/wp-content/plugins/recurring-payments/
recurring-payments.php
— главный файл плагина./includes/
class-recurring-payment.php
— основной класс обработки рекуррентных платежей.class-ajax-handler.php
— обработчик AJAX-запросов.class-tbank-api.php
— класс для взаимодействия с API Т-банка.class-notifications.php
— уведомления через email и Telegram.class-admin-page.php
— страница админ-панели.
/templates/
form-payment.php
— шаблон формы ввода телефона.
/assets/
style.css
— стили для админки и формы.script.js
— JavaScript для взаимодействия с формой.
3.2. Основной функционал:
- Frontend:
- Форма для ввода номера телефона (через шорткод).
- Кнопка оплаты, ведущая к API Т-банка.
- Backend:
- Обработка результата оплаты через вебхук Т-банка.
- Автоматическая проверка статуса ежемесячных платежей.
- Админ-панель для управления клиентами.
4. Этапы реализации
Этап 1: Разработка структуры модуля
- Создать структуру папок и файлов модуля.
- Реализовать шорткод для формы ввода телефона.
Этап 2: Интеграция с Т-банком
- Реализовать класс
class-tbank-api.php
для взаимодействия с API:- Отправка данных на оплату.
- Получение токенов.
- Проверка статуса оплаты.
- Провести тестирование API (в тестовом режиме).
Этап 3: Уведомления
- Настроить отправку email и Telegram уведомлений для администратора:
- Успешная оплата.
- Ошибка платежа.
Этап 4: Админ-панель
- Реализовать интерфейс для просмотра и управления данными клиентов.
- Добавить функции удаления и редактирования клиентов.
Этап 5: Автоматизация проверок
- Настроить WP-Cron для ежемесячной проверки статусов оплат.
- Обработать сценарии:
- Успешный платеж.
- Неудачная попытка.
Этап 6: Финальное тестирование
- Пройти тесты Т-банка (согласно их документации).
- Проверить работу в боевом режиме.
5. Результат
- Рабочий плагин WordPress с:
- Формой для ввода телефона.
- Интеграцией с Т-банком для рекуррентных платежей.
- Автоматической обработкой платежей.
- Уведомлениями об ошибках.
- Админ-панелью для управления клиентами.
Что уже реализовано
- Интеграция с WooCommerce:
- Установлен и настроен плагин для работы с API Т-банка.
- Плагин настроен на выполнение платежей в тестовом режиме.
- Интерфейс оплаты на сайте:
- Создана кнопка оплаты, содержащая галочку для подтверждения согласия с условиями.
- Добавлена форма для ввода номера телефона, отображаемая после клика на кнопку оплаты.
- Пользователь вводит номер телефона перед перенаправлением на страницу оплаты.
- Базовый функционал для взаимодействия с пользователем:
- Кнопка оплаты активируется только после подтверждения согласия с условиями (галочка).
- Ввод номера телефона требуется перед выполнением запроса на оплату.
- Интеграция с WooCommerce: