Реализовать бота-продавца, имеющего меню выбора жанров игр (action, mmo, rpg) и имеющего возможность проведения платежа и выбора варианта доставки.
Ответы
Ответ:
import telebot
# Создание экземпляра бота
bot = telebot.TeleBot('YOUR_TOKEN')
# Обработчик команды /start
@bot.message_handler(commands=['start'])
def start(message):
# Отправка приветственного сообщения и меню выбора жанров игр
bot.send_message(message.chat.id, "Добро пожаловать! Выберите жанр игры:",
reply_markup=get_genres_markup())
# Обработчик выбора жанра игры
@bot.callback_query_handler(func=lambda call: call.data in ['action', 'mmo', 'rpg'])
def handle_genre_selection(call):
# Получение выбранного жанра игры
genre = call.data
# Далее можно продолжить обработку выбранного жанра (показать список игр и т.д.)
# и предложить оплату и выбор варианта доставки
# Отправка сообщения с опциями платежа и доставки
bot.send_message(call.message.chat.id, "Выберите способ оплаты и вариант доставки:",
reply_markup=get_payment_delivery_markup())
# Обработчик выбора опции платежа и доставки
@bot.callback_query_handler(func=lambda call: call.data.startswith('payment_') or call.data.startswith('delivery_'))
def handle_payment_delivery_selection(call):
# Получение выбранной опции платежа и доставки
option = call.data
# Далее можно обработать выбранную опцию (совершить платеж, оформить доставку и т.д.)
# и завершить процесс покупки
# Отправка сообщения о завершении покупки
bot.send_message(call.message.chat.id, "Спасибо за покупку! Ваш заказ обработан.")
# Функция для создания клавиатуры с жанрами игр
def get_genres_markup():
markup = telebot.types.InlineKeyboardMarkup()
markup.row_width = 3
markup.add(telebot.types.InlineKeyboardButton('Action', callback_data='action'),
telebot.types.InlineKeyboardButton('MMO', callback_data='mmo'),
telebot.types.InlineKeyboardButton('RPG', callback_data='rpg'))
return markup
# Функция для создания клавиатуры с опциями платежа и доставки
def get_payment_delivery_markup():
markup = telebot.types.InlineKeyboardMarkup()
markup.row_width = 2
markup.add(telebot.types.InlineKeyboardButton('Оплата картой', callback_data='payment_card'),
telebot.types.InlineKeyboardButton('Оплата наличными', callback_data='payment_cash'),
telebot.types.InlineKeyboardButton('Доставка курьером', callback_data='delivery_courier'),
telebot.types.InlineKeyboardButton('Самовывоз', callback_data='delivery_pickup'))
return markup
# Запуск бота
bot.polling()