Получение данных платежа 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