Как сделать нормальную автооплату?

Всем, привет. В общем у меня есть в телеграмм боте автооплата по киви, она все работает - все хорошо, до определенного момента. А именно, если ботом пользуются несколько человек и они одновременно пополняют баланс то бот крашится, т.к. все запутывается либо же у одного баланс не пополняется потому что код поменялся. В общем вопрос, как мне сделать автооплату при которой бот не будет крашится если пополняют несколько человек? Библиотека бота aiogram Так же если у вас есть готовая автооплата такая я бы посмотрел как пример:) спасибо.

    elif call.data == 'bank_or_qiwi':
    random_code = randint(100000, 999999)
    code.append(random_code)
    bank_or_qiwi_sostoyanie.append(1)
    key_qiwi = InlineKeyboardMarkup()
    otmena = InlineKeyboardButton('?Оплатить', url=f'https://qiwi.com/payment/form/99?extra%5B%27account%27%5D={qiwi_number}&amountInteger={prices[-1]}&amountFraction=0&extra%5B%27comment%27%5D={code[-1]}&currency=643&blocked[0]=account')
    check = InlineKeyboardButton('⏳Проверить поступление', callback_data='check')
    key_qiwi.add(otmena).add(check).add(back)
    await bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                text=f'Для оплаты нажмите кнопку "Оплатить", после чего нажмите на кнопку "Проверить"!', parse_mode=ParseMode.MARKDOWN,
                                reply_markup=key_qiwi)
    elif call.data == 'check':
    h = requests.get('https://edge.qiwi.com/payment-history/v1/persons/' + qiwi_number + '/payments?rows=50',
                     headers={'Accept': 'application/json',
                              'Content-Type': 'application/json',
                              'Authorization': f'Bearer {qiwi_token}'})
    req = json.loads(h.text)
    for i in range(len(req['data'])):
        if req['data'][i]['comment'] == f"{code[-1]}":
            print(['data'][i])
            if req['data'][i]['sum']['amount'] == int(prices[-1]):
                await bot.send_message(call.message.chat.id, f'Спасибо за покупку! Ссылка на канал: {chanell[-1]}')
                buy_tarifi.append(tarif[-1])
                break
        else:
            key_qiwi = InlineKeyboardMarkup()
            otmena = InlineKeyboardButton('?Оплатить',
                                          url=f'https://qiwi.com/payment/form/99?extra%5B%27account%27%5D={qiwi_number}&amountInteger={prices[-1]}&amountFraction=0&extra%5B%27comment%27%5D={code[-1]}&currency=643&blocked[0]=account')
            check = InlineKeyboardButton('⏳Проверить поступление', callback_data='check')
            key_qiwi.add(otmena).add(check).add(back)
            await bot.edit_message_text(chat_id=call.message.chat.id, message_id=call.message.message_id,
                                        text=f'Платеж не был получен!', reply_markup=key_qiwi)
            break

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