@DarkiDeuce

При выходе из @bot.callback_query_handler сообщение из следующей функции отправляется несколько раз, как исправить?

хочу сделать корзину с выбранными пользователем продуктами, корзина представляет собой клавиатурные кнопки, а товар добавляется инлайновыми кнопками. После нажатия на инлайновую кнопку товар исправно отображается в корзине, но после нажатия на кнопку "оформить заказ", сообщение из следующей функции отправляется столько же раз, сколько товаров было в корзине. Я понимаю, почему так происходит, я несколько раз запускаю функцию Basket нажатием на кнопку, а значит и переходов к следующей функции тоже несколько, но не понимаю как зафиксить...

Вот код:
def checkout(message):
    if message.text == "Оформить заказ ":
        bot.send_message(message.chat.id, "Заказ оформлен! Оставьте контактную информацию.")
    else:
        markup = types.ReplyKeyboardMarkup()
        product = types.KeyboardButton("Оформить заказ ")
        for i in basket:
            markup.add(i)
        markup.add(product)

        bot.send_message(message.chat.id, "Товар добавлен в корзину", reply_markup=markup)

        bot.register_next_step_handler(message, checkout)

@bot.callback_query_handler(func=lambda call: True)
def Basket(call):
    if call.data == "AddInBasket_0":
        basket.append("«Обоняние», 12000 р.")
    elif call.data == "AddInBasket_1":
        basket.append("«Золотой горизонт», 15000 р.")
    elif call.data == "AddInBasket_2":
        basket.append("«Тянуться к свету», 8000 р.")
    elif call.data == "AddInBasket_3":
        basket.append("«Акварельная ботаника», 7500 р.")

    checkout(call.message)
  • Вопрос задан
  • 71 просмотр
Пригласить эксперта
Ваш ответ на вопрос

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

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