Обработчик PyEasyQiwi, проблема с обработкой массовых платежей

Рейтинг: 1Ответов: 0Опубликовано: 16.02.2023

Уже не знаю, куда податься. У меня есть бот телеграм на telebot, Я использую библиотеку PyEasyQiwi

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

def oplata_1(message):
    api_key = "="
    conn = QiwiConnection(api_key)
    value = 100
    currency = "RUB"
    delay = 30
    description = "test_user_ID"
    theme_code = "temacode"
    comment = "ID: " + str(message.chat.id) + " - " + "(SHOP: D_01)"
    qiwi_pay = True
    card_pay = True
    pay_url, bill_id, response = conn.create_bill(value, currency, delay, description, theme_code, comment, qiwi_pay, card_pay)

    markup = types.InlineKeyboardMarkup()
    button1 = types.InlineKeyboardButton("Оплатить через QIWI / Банковскую карту", url=(pay_url))
    button2 = types.InlineKeyboardButton("Отмена", callback_data="otmena")
    markup.add(button1)
    markup.add(button2)
    bot.send_message(message.chat.id, "Выполните платёж", reply_markup=markup)
    status, response = conn.check_bill(bill_id)

    while status == "WAITING":
        time.sleep(5)
        status, response = conn.check_bill(bill_id)
        while status == "PAID":
            bot.send_message(chat_id=message.chat.id, text="Оплата прошла успешно. Привилегия выдана")
            conn.remove_bill(bill_id)
            break
        while status == "EXPIRED":
            conn.remove_bill(bill_id)
            break
        while status == "REJECTED":
            conn.remove_bill(bill_id)
            break

Ответы

Ответов пока нет.