Задать вопрос
@XSezh

Как сделать чтобы числовое значение принималось после того как его запросят в telebot?

я пишу бот по покупке/продаже игровой валюты, после того как пользователь заходит в бота появляется кнопка "купить голду", после чего бот просит ввести сумму в рублях, на которую пользователь хочет купить:

@bot.message_handler(func=lambda message: message.text.isdigit())
def get_values(message):
    payboard = types.InlineKeyboardMarkup()
    sber = types.InlineKeyboardButton(text='Сбербанк', callback_data='sber')
    tinkoff = types.InlineKeyboardButton(text='Тинькофф', callback_data='tinkoff')
    alfa = types.InlineKeyboardButton(text='Альфа-банк', callback_data='alfa')
    payboard.add(sber)
    payboard.add(tinkoff)
    payboard.add(alfa)
    text_pay = (
                f'Сумма: {message.text}₽\n'
                f'Вы получаете {int(message.text) * 2}голды\n\n'
                f'Выберите способ оплаты:\n'
    )
    bot.send_message(message.chat.id, text_pay, reply_markup=payboard)


@bot.message_handler(content_types=['text'])
def get_messages(message):
    if message.from_user.id not in admins:
        menu = types.ReplyKeyboardMarkup(resize_keyboard=True).add('купить голду')
        if message.text == '/start':
            bot.send_message(message.chat.id, 'привет это бот по продаже голды, для навигации используй кнопки', reply_markup=menu)
            print(message.from_user.id)
        if message.text == 'купить голду':
            menu = types.ReplyKeyboardRemove()
            back = types.ReplyKeyboardMarkup(resize_keyboard=True).add('главное меню')
            bot.send_message(message.chat.id, 'введите сумму в рублях на которую вы хотите купить', reply_markup=back)
        if message.text == 'главное меню':
            menu = types.ReplyKeyboardMarkup(resize_keyboard=True).add('купить голду')
            bot.send_message(message.chat.id, 'вы в главном меню', reply_markup=menu)
    else:
        if message.text == '/start':
            bot.send_message(message.chat.id, 'Добро пожаловать в админский профиль!')

проблема в том что пользователь сразу может ввести любое число и попасть в меню с выбором банка, я хочу сделать какойнибудь хэндлер который будет срабатывать после сообщения "купить голду" и только с этого момента начинать ждать сумму
  • Вопрос задан
  • 31 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
Wispik
@Wispik
Надо использовать register_next_step_handler()
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы