Мы решили открыть доступ всем желающим, а не только команде Рыбы. Для этого запланировали условно бесплатный и премиум-вариант подписки. В условно бесплатной части человек может указать только продукты и целевую аудиторию, а бот ему выдаст 50 тем для статей.
Тот, кому нужен более профессиональный инструмент, может оформить премиум-версию. В ней нет ограничений по количеству данных, можно сохранять контент-матрицу в базе данных, улучшать уже готовые темы еще раз с помощью нейросети.
Для разработки логики деления бота на две части мы использовали разные решения.
Использовали базу данных PostgreSQL. Это топовое решение для хранения и обработки информации. В базу данных мы записываем ID пользователя в Телеграме, присваиваем ему статус free (бесплатный) и записываем счетчик запросов со значением 10. Каждый запрос уменьшает счетчик на один, пока он не обнулится. Потом бот будет просить оформить премиум-подписку.
Если пользователь внес оплату за подписку, ему присваивается статус premium и счетчик запросов увеличивается до 50. То есть человек может 50 раз сгенерировать темы для статей.
Такая логика помогает автоматизировать рутину и избавляет от необходимости вручную менять статусы пользователей и следить за актуальностью подписки.
Подключили прием платежей через Т-Банк. Оплату от пользователей нам надо было принимать на расчетный счет ИП. У Т-Банка есть собственный API, через который можно настроить автоматическое формирование платежной ссылки.
Написать код было несложно: есть готовые библиотеки от банка. Труднее пришлось с настройками уведомлений. Дело в том, что Телеграм не может отслеживать, пришел ли платеж на сторонних ресурсах. А нам критически важно это понимать, чтобы выдавать премиум-запросы только в случае получения денег на счет ИП.
Решение нашли в самом Т-Банке. В методах API можно указать ссылку на сайт, на которую банк присылает уведомление о платеже: успешно или нет. Эта технология называется «вебхук», и ее легко интегрировать в телеграм-бота. Для разработки мы зарегистрировали отдельный домен
cm-ryba.ru и подключили к нему функцию для обработки запросов. Когда человек оплачивает премиум, функция сама стучится в бота и сообщает ему статус платежа. А пользователю приходит сообщение.