Бесконечная загрузка Юмани Python

введите сюда описание изображения

sync def buy_sub(callback_query: CallbackQuery):
    db = read_data()
    if db[str(callback_query.from_user.id)]['sub'] is False:
        key = InlineKeyboardBuilder()
        key.button(text="ЮМани", callback_data="youm")
        key.button(text="Payok", callback_data="payok")
        key.adjust(1)

        await callback_query.message.answer("Выбирите метод оплаты: ", reply_markup=key.as_markup())
    else:
        await callback_query.message.answer("Ваша подписка уже оформлена!")


async def yoomoney(callback_query: CallbackQuery):
    quickpay = Quickpay(
            receiver="xxxxxxxxxxxx",
            quickpay_form="shop",
            targets="Sponsor this project",
            paymentType="SB",
            sum=100,
            label=f"{callback_query.from_user.id}",
            )
    print(quickpay.base_url)
    print(quickpay.redirected_url)
    key = InlineKeyboardBuilder()
    key.button(text="Я оплатил", callback_data="check")
    key.button(text="Оплатить подписку", url=quickpay.redirected_url)

    await callback_query.message.answer("Для продолжения воспользуйтесь кнопками в меню: ", reply_markup=key.as_markup())



async def payok(callback_query: CallbackQuery):
    quick = QuickPay(amount=200,
                    currency="RUB",
                    desc="Chat SUB",
                    shop=0000,
                    secret="",
                    payment=callback_query.from_user.id)

    key = InlineKeyboardBuilder()
    key.button(text="Я оплатил", callback_data="checkk")
    key.button(text="Оплатить подписку", url=quick.generate_paylink())

    await callback_query.message.answer("Для продолжения воспользуйтесь кнопками в меню: ", reply_markup=key.as_markup())


async def check_payment(callback_query: CallbackQuery):
    db = read_data()

    if callback_query.data == "checkk":
        client = Client(token=client_token)

        history = client.operation_history(label=f"{callback_query.from_user.id}")
        for operation in history.operations:
            if operation.status == "success":
                db[str(callback_query.from_user.id)]['sub'] = True
                db[str(callback_query.from_user.id)]['time'] = (
                        datetime.datetime.now() + SUBSCRIPTION_DURATION
                ).isoformat()
                write_data(db)
                await callback_query.message.answer("Оплата прошла успешно!")
                break
            else:
                await callback_query.answer("Вы еще не оплатили!")
                break
    elif callback_query.data == "check":
        client = Client(token=client_token)

        history = client.operation_history(label=f"{callback_query.from_user.id}")
        for operation in history.operations:
            if operation.status == "success":
                db[str(callback_query.from_user.id)]['sub'] = True
                db[str(callback_query.from_user.id)]['time'] = (
                        datetime.datetime.now() + SUBSCRIPTION_DURATION
                ).isoformat()
                write_data(db)
                await callback_query.message.answer("Оплата прошла успешно!")
                break
            else:
                await callback_query.answer("Вы еще не оплатили!")
                break

Ответы (0 шт):