Код на проверку переводов yoomoney в определённом месте перестал работать

            elif(message.text == "Я оплатил"):
                user_id = message.from_user.id
                bot.send_message(message.chat.id, text="Проверка оплаты...")
                with open('label.json','r') as f:
                    data = json.load(f) 
                pas = data[str(user_id)]['pas']
                money = data[str(user_id)]['money']
                #часть кода не по теме...
                token = cfg.ytoken
                client = Client(token)
                history = client.operation_history(label=pas)
                for operation in history.operations: #часть в коде котороя не работает
                    if operation.status == "success":
                        with open('SHC.json') as f:
                            data = json.load(f)
                        data = add_money(data, user_id, money)
                        with open('SHC.json', 'w') as f:
                            json.dump(data, f)
                        #часть кода не по теме...
                        bot.send_message(message.chat.id, text=f"Статус оплаты с кодом\n{pas}\n\nОплачено, скоро на ваш счёт поступят деньги",reply_markup=markup)
                    else:
                        bot.send_message(message.chat.id, text=f"Статус оплаты с кодом\n{pas}\n\nНе оплачено",reply_markup=markup)

часть кода из телеграмм бота, при проверки оплаты есть 2 варианта:

Оплачено или не оплачено, изначально я запускал команду на создание ссылки на оплату с label="рандомное сочетание латинских букв и цифр" и запускал проверку на оплату, данная часть года, как и должна была, сообщала о том, что оплата не происходила... Потом я так-же запустил команду на создание ссылки с labell="рандомное сочетание латинских букв и цифр" и запускал проверку на оплату(перед этим совершив её) - всё сработала и оплата подтвердилась, но после этого код перестал что-либо выдавать после #часть в коде котороя не работает.

Что могло пойти не так?


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

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

я конечно не эксперт но у тебя идёт моментальная проверка и возможно что деньги просто так быстро не приходят попробуй зациклить и в случае поступления останавливать цикл и советую не использовать рандомный набор букв и цифр они могут однажды совпасть используй лучше member.id и допустим модуль datetime для получения времени пример : f('{member.id} {datetime.datetime.now().hour:02d}:{datetime.datetime.now().minute:02d}') если не понял могу помочь в дискорде (maloletka777)

             while True:
                for operation in history.operations:
                    if operation.status == "success":
                        with open('SHC.json') as f:
                            data = json.load(f)
                        data = add_money(data, user_id, money)
                        with open('SHC.json', 'w') as f:
                            json.dump(data, f)
                        break
→ Ссылка