Техническое задание для автоматизации процессов авторизации, ввода данных, привязки карты и покупки товаров
1. Цель проекта
Создание автоматизированного решения, которое позволяет выполнять следующие действия без участия человека:
- Авторизация пользователя в системе https://store.playstation.com/en-tr.
- Ввод необходимых данных (логин, пароль, резервный код).
- Привязка платежной карты к аккаунту пользователя.
- Удаление старых товаров из корзины
- Совершение покупки товаров.
- Отвязка карты
- Обработка возможных факторов (например, двухфакторная аутентификация) и отправка отчета о выполнении операции.
- Преодоление ошибок
2. Требуемая функциональность
2.1 Авторизация
- Автоматический вход в аккаунт пользователя, используя данные из таблицы "Customers" в базе данных // внешний тригер с данными пользователя
- Обработка сценариев с двухфакторной аутентификацией (2FA) — получение кода с почты, SMS или аутентификатора в коммуникации через телеграм бота
2.2 Ввод данных
- Использование логина, пароля и резервного кода пользователя из базы данных для входа в систему.
- Обработка ошибок и проверка правильности ввода данных.
2.3 Привязка карты
- Автоматическая привязка платежной карты из внешнего источника (например, Google таблицы) к аккаунту пользователя.
- Обработка возможных ошибок при привязке и перепривязке карт.
- Отвзяка карты
2.4 Покупка товаров
- Автоматическое выполнение покупки товаров или подписок через интерфейс веб-сайта
- Обеспечение возможности автоматической отправки вебхуков или HTTP-запросов для получения и отправки данных в другие системы.
2.5 Обработка ошибок и уведомлений
- Логирование действий и ошибок для каждой выполненной операции.
- Отправка уведомлений в Telegram/Slack о статусе выполнения каждой операции (успех/ошибка).
- Возможность отправки вебхуков с данными о завершенной операции на указанный URL.
3. Технические требования
3.1 Бэкэнд
- Язык программирования: любой (с использованием Puppeteer, Selenium или аналогов).
- База данных: PostgreSQL (данные пользователей) и Google Sheets (данные карт).
3.2 Интеграция и API
- Возможность отправки HTTP-запросов для взаимодействия с другими системами, например, с ботом в Telegram.
- Вебхуки: отправка результатов выполнения операций на указанный endpoint (например, Slack, Telegram).
4. Входные данные
- Данные для авторизации:
- Логин, пароль, резервный код из таблицы "Customers" в базе данных PostgreSQL.
- Данные для привязки карт:
- Номер карты, дата окончания действия, CVC из Google таблиц и адрес
- Настройки прокси:
- Список доступных прокси (socks5).
6. Интеграции и взаимодействие
- Интеграция с базой данных PostgreSQL для получения данных пользователей.
- Интеграция с Google Sheets для получения данных карт.
- Возможность получения запросов из Telegram и других источников, их обработки и отправки ответов.
7. Возможные трудности и решения
- Ограничения и блокировки сайтов:
- Использование антидетект браузеров для обхода ограничений.
- Регулярная ротация прокси для минимизации риска блокировки.
- Обработка двухфакторной аутентификации:
- Поддержка сценариев с получением кода из почты, SMS, аутентификатора.
- Возможность ручного подключения в случае сбоя автоматизации.
- Ошибки при привязке карт:
- Логирование ошибок и автоматическое переключение на следующую карту из списка в случае неудачи.
8. Требования к безопасности
- Защита передаваемых данных (шифрование).
- Безопасное хранение учетных данных.
- Ограничение доступа к базе данных и другим ресурсам.
9. Ресурсы и доступы
- Прокси-сервисы: Доступ к списку прокси-серверов
- Тестовые данные: Логины, пароли, карты для тестирования.
10. Отчетность и документация
- Предоставление отчета о проделанных работах.
- Инструкции по установке и запуску приложения.
- Документация по API и взаимодействию с другими системами.