Как преобразовать State в int?

Я делаю бота с подписками и для этого надо как то пополнять баланс что очевидно, я сделал это при помощи Qiwi. В тестах я использовал фиксированную стоимость с помощью переменной, сейчас же я решил сделать так что бы пользователь смог сам указывать сумму пополнения, однако я получаю ошибку когда сравниваю количество пришедших денег и число которое ввёл пользователь. Так же прикладываю весь код платёжки с ошибкой(ошибка в строке 84).

    from misc import bot, dp, conn, cursor

    from .functions import *

    import requests

    from multiprocessing import Process, Queue

    from aiogram import executor, types

    from aiogram.utils.helper 
    import Helper, HelperMode, ListItem

    import os

    import json

    from config import * #именно в конфиге находяться все данные киви

    import random

    import time

    from time import gmtime

    from time import strftime

    import handlers.keyboard as kb

    from aiogram.dispatcher.filters.state import State, StatesGroup

    from aiogram.dispatcher import FSMContext

    from aiogram.dispatcher.filters import Text

    from aiogram.dispatcher.filters.state import State, StatesGroup


    class st(StatesGroup):


        item = State()



    @dp.message_handler(text=['Пополнения и подписки'])

    async def fag(message: types.Message):

        user = message.from_user

        chat = message.chat

        balance = await get_balance(message)

        podpiska = await get_podp(message)

        if podpiska == 0:

            podp = "нету?"

        else:

                get = cursor.execute("SELECT podp_time FROM users WHERE id=?", (user.id,)).fetchall()

                ptime = f"{int(get[0][0])}"

                podp_time = time.time() - float(ptime)

                vremya = strftime("%j дней %H часов %M минут", gmtime(podp_time))

                podp = f"осталось <code>{vremya}</code>"

        await bot.send_message(message.chat.id,f"<b>?Баланс:</b> <code>{balance}</code>\n"
f"<b>?Подписка:</b> {podp}",reply_markup=kb.qiw)



    @dp.callback_query_handler(lambda c: c.data == "popol")

    async def show(callback_query: types.CallbackQuery):

    await bot.send_message(callback_query.message.chat.id,"Введите сумму пополнения",reply_markup=kb.back)

        await st.item.set()





    @dp.message_handler(state=st.item)

    async def proc(message: types.Message, state: FSMContext):

        if message.text == 'Отмена':

            await message.answer('Отмена! Возвращаю назад.', reply_markup=kb.menu)

            await state.finish()

        else:

            if message.text.isdigit():

                coment = ''.join(random.choices('qwertyuiopsdfghjkl;zxcvbnm',k=10)) + str(random.randint(1, 1000))

                amount = message.text

                s = requests.Session()

                s.headers['authorization'] = 'Bearer' + token

                parameters = {'publicKey':publick_key,'amount':message.text,'phone':phone,'comment':coment}

                h = s.get('https://oplata.qiwi.com/create', params = parameters)

                inlinepay_keyboard = types.InlineKeyboardMarkup()

                pay_sub = types.InlineKeyboardButton('Пополнить баланс', url=h.url)

                check_pay = types.InlineKeyboardButton(text='Проверить оплату QIWI?',callback_data='checkpay')

                inlinepay_keyboard = inlinepay_keyboard.add(pay_sub).add(check_pay)

                await bot.send_message(message.chat.id, f'Для оплаты нажмите на кнопку ниже.', reply_markup=inlinepay_keyboard)
        
    new_payment(message.chat.id,coment,amount)

                await state.finish()

            else:

                await message.answer('Вы вводите буквы...\nВведите цифры')


    @dp.callback_query_handler(text='checkpay')

    async def check_payment(query: types.CallbackQuery):

        coment = get_comment(query.message.chat.id)

        s = requests.Session()

        s.headers['authorization'] = 'Bearer ' +  token

        parameters = {'rows': '50', 'operation':'IN'}

        h = s.get('https://edge.qiwi.com/payment-history/v1/persons/'+ phone +'/payments', params = parameters)

        result = json.loads(h.text)

        for i in range(len(result['data'])):

            if result['data'][i]['coment'] == str(coment):

                if result['data'][i]['sum']['amount'] >= st.item:#как раз таки место с ошибкой

                    await bot.send_message(query.message.chat.id,'Оплата прошла,добавил вас в базу')
            
    add_sub(query.message.chat.id)

                    break

            else:

                await bot.send_message(query.message.chat.id, 'Не нашел вашу оплату')

                break
    

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

Автор решения: Sorrow

Для тех кто столкнётся с такой же проблемой, решение: записывайте в бд сумму пополнения в отдельный столбец и уже его сравнивайте с пришедшим платежом

→ Ссылка