Получение данных платежа telebot

Настраиваю интеграцию платежей Telegram в YooKassa. С формированием платежей и их оплатой проблем нет, а вот с их обработкой - есть вопросы. Использую PyTelegramBotAPI. Формирование счета и отправка клиенту:

price_item = [LabeledPrice(label='Услуга', amount=amount_addk)]
yooprovdata = {"receipt": {"items":[{"description":"Услуга","quantity":"1.00","amount":{"value":"100.00","currency":"RUB"},"vat_code":1}]}}

bot.send_invoice(message.chat.id, title='Услуга',
  description='Услуга',
  provider_token=config.telepay_token,
  currency='RUB',
  prices=price_item,
  start_parameter='add-funds',
  invoice_payload='payload'
  need_email=True,
  send_email_to_provider=True,
  provider_data=json.dumps(yooprovdata)
  )

Далее принимаем и подтверждаем Pre-Checkout, тут все хорошо, хотя на этом этапе можно было бы попробовать получить данные платежа(не понимаю как):

@bot.pre_checkout_query_handler(func=lambda query: True)
def checkout(pre_checkout_query):
  bot.answer_pre_checkout_query(pre_checkout_query.id, ok=True, error_message="Error")

Далее пытаюсь написать обработку платежа, но не выходит:

@bot.message_handler(content_types=['successful_payment'])
def got_payment(message):
  payment_info = message.successful_payment

Верно ли я принимаю данные? Какие есть параметры у объекта successful_payment?


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

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

Нашел, может кому полезно будет:

  = message.successful_payment.provider_payment_charge_id
  = message.successful_payment.currency
  = int(message.successful_payment.total_amount) / 100
  = message.successful_payment.invoice_payload
→ Ссылка