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

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

Привет! Хочу сделать корзину в телеграмм боте, в корзине отображается на месте клавиатурных кнопок, а товар добавляется в "корзину" инлайновыми кнопками. В корзине исправно отображается желаемая информация, но после нажатия на "оформить заказ", выполняется переход к следующей функции, и сообщение из этой функции отправляется столько же раз, сколько "товаров" было в корзине. Как исправить сделать так, чтобы сообщение отправлялось один раз, а дальше выполнялись следующие шаги?

def checkout(message):
    bot.send_message(message.chat.id, "Заказ оформлен! Оставьте контактную информацию.")
    bot.register_next_step_handler(message, "Следующий шаг")

@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 р.")

    markup = types.ReplyKeyboardMarkup()
    product = types.KeyboardButton("Оформить заказ ")
    for i in basket:
        markup.add(i)
    markup.add(product)

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

    bot.register_next_step_handler(call.message, checkout)
  • Вопрос задан
  • 71 просмотр
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 1
SoreMix
@SoreMix Куратор тега Python
yellow
Из-за "следующий шаг"
bot.register_next_step_handler(message, "Следующий шаг")
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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