Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Оплата в телеграм боте по yoomoney

Филарет Скрипченко Знаток (334), открыт 1 день назад
Я решил сделать телеграм бот магазин, ссылка на оплату создается а проверка оплаты не идет

 def yoomoney_pay(sum): 
quickpay = Quickpay(
receiver="4100118038942997", #номкер счета
quickpay_form="shop",
targets="Sponsor this project",
paymentType="SB",
sum=sum,
label="test123"
)

return quickpay.base_url

def yoomoney_pay_ans():
#time.sleep()
history = client.operation_history(label="test123")
print(type(history), history)

if history.operations == []:
print("Оплата не найдена!")

for operation in history.operations:
if operation.status == 'success':
print("Оплата найдена!")

@bot.callback_query_handler(func=lambda call: True)
def shop(call):
elif call.data == "umoney":
pay_link = yoomoney_pay(2)
bot.send_message(call.from_user.id, f"Оплатите по ссылке: \n {pay_link}")
yoomoney_pay_ans()
и выдает ошибку:
File "C:\python\shop\main.py", line 74, in yoomoney_pay_ans
history = client.operation_history(label="test123")
TypeError: string indices must be integers

Я уже не знаю что делать, помогите
1 ответ
Святослав Ясновидец Мастер (1978) 1 день назад
from yoomoney import Client, Quickpay
import telebot
import time

# Инициализация клиента YooMoney
client = Client("ваш_токен_доступа")

# Инициализация бота
bot = telebot.TeleBot("ваш_токен_бота")

def yoomoney_pay(sum):
quickpay = Quickpay(
receiver="4100118038942997", # Номер счета
quickpay_form="shop",
targets="Sponsor this project",
paymentType="SB",
sum=sum,
label="test123"
)
return quickpay.base_url

def yoomoney_pay_ans():
try:
# Ждем 10 секунд перед проверкой
time.sleep(10)

# Получаем историю операций
history = client.operation_history(label="test123")
print("Тип history:", type(history))
print("History:", history)

# Проверяем, есть ли операции
if not history.operations:
print("Оплата не найдена!")
else:
for operation in history.operations:
if operation.status == 'success':
print("Оплата найдена!")
except Exception as e:
print("Ошибка:", e)

@bot.callback_query_handler(func=lambda call: True)
def shop(call):
if call.data == "umoney":
pay_link = yoomoney_pay(2)
bot.send_message(call.from_user.id, f"Оплатите по ссылке: \n{pay_link}")
yoomoney_pay_ans()

# Запуск бота
bot.polling(none_stop=True)
Филарет СкрипченкоЗнаток (334) 1 день назад
таже самая ошибка
Похожие вопросы