• Предмет: Информатика
  • Автор: yaroslav00000000000
  • Вопрос задан 2 месяца назад

Реализовать бота-продавца, имеющего меню выбора жанров игр (action, mmo, rpg) и имеющего возможность проведения платежа и выбора варианта доставки.

Ответы

Ответ дал: barcik222
1

Ответ:

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()

Вас заинтересует