rosh1k
@rosh1k
python - не более

Как реализовать этот ввод?

@dp.message_handler()
async def bot_message(message: types.Message):
    if message.chat.type == 'private':
        if message.text == "Купить подписку":
            pass
        elif message.text == "Ввести купон":
            await bot.send_message(message.from_user.id, "Введите промокод")
            if message.text == "KR_XXXXX":
                time_sub = int(time.time()) + days_to_seconds(30)
                db.set_time_sub(message.from_user.id, time_sub)
                await bot.send_message(message.from_user.id, "Вам выдана подписка на месяц.")
        elif message.text == "Главное меню":
            await bot.send_message(message.from_user.id, "Вы перемещены в главное меню.", reply_markup=nav.mainMenu)


Как реализовать активацию купона только после нажатия кнопки ввести купон ?
Если мы сейчас введем , то работать ничего не будет
632de01441ef8675959346.png
  • Вопрос задан
  • 258 просмотров
Пригласить эксперта
Ответы на вопрос 1
InnieSharp
@InnieSharp
C# программист
if message.text == "KR_XXXXX":
                time_sub = int(time.time()) + days_to_seconds(30)
                db.set_time_sub(message.from_user.id, time_sub)
                await bot.send_message(message.from_user.id, "Вам выдана подписка на месяц.")

Эта проверка будет производится если ты ввёл Ввести купон, если короче, она не будет проводиться, т.к. уже проведена.
Создай переменную Boolean, в проверке Ввести купон дай ей значение True,
Дальше вне проверки Ввести купон проверь является ли она True, если да, то проверь сообщение, если оно = KR_XXXXX, то делай что надо, и ставь переменной значение False.
Должно работать. Просто давно не писал телеграм ботов на Python, да и вообще давно не прогал на нём.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы