Как заставить бота ждать сообщение и потом реагировать на него?

Доброго времени суток!

Пишу бота для телеграмма, пытался сделать реферальную систему и столкнулся с проблемой, что не могу заставить бота ждать сообщение от юзера и соответственно бот никак не реагирует на сообщения

        i = db.user_money(message.from_user.id)
        r = i[5]
        ### эти строки просто достают код из базы данных, они работают нормально###

        elif call.data == 'Referal':

        markup = types.InlineKeyboardMarkup(row_width=2)
        item1 = types.InlineKeyboardButton("?Мой реф код", callback_data='My ref')
        item2 = types.InlineKeyboardButton("?Ввести код друга", callback_data='Addref')
        item3 = types.InlineKeyboardButton("⬅️Назад", callback_data='Nazad v main')
        markup.add(item1, item2, item3)

        bot.send_message(call.message.chat.id, '? Реферальная программа\n\n? Наш бот имеет 
        реферальную сестему! Попроси друга ввести ваш код и получайте бонус!', reply_markup=markup)
        bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)

        elif call.data == 'Addref':


        markup = types.InlineKeyboardMarkup(row_width=2)
        item1 = types.InlineKeyboardButton("⬅️Назад", callback_data='Referal')
        markup.add(item1)

        if call.message.chat.id == r:      ### r - это переменная в которую записан код, она работает правильно###

            bot.send_message(call.message.chat.id, 'успех!!', reply_markup=markup)
        else:
            bot.send_message(call.message.chat.id, 'не подходит!', reply_markup=markup)

        bot.delete_message(chat_id=call.message.chat.id, message_id=call.message.message_id)

        

в итоге бот после нажатия на кнопку "?Ввести код друга" просто сразу выдаёт 'не подходит!' и не реагирует на сообщения


Ответы (1 шт):

Автор решения: Іван Шнір

Используйте команду bot.register_next_step_handler(msg, func)
Показую на примере:

    def code(message):
        msg = bot.send_message(message.chat.id,"Введите ваш код")
        bot.register_next_step_handler(msg,active)
    def active(message):
        bot.send_message(message.chat.id," Вы успешно ввели код")
→ Ссылка