Цель вопроса заключается в передаче callback данных в message.successful_payment, я использую конструкцию бд с SQLAchemy и передаю данные через запросы callback. Может ли мне тут помочь FSM состояние? Как его реализовать или какое другое решение найти?
@router.message(F.successful_payment)
async def successful_payment(message: Message):
print("Перевод прошел успешно:")
payment_info = message.successful_payment
for k, v in payment_info:
print(f"{k} = {v}")
# await callback.message.answer_location(latitude=47.504262, longitude=19.066605)
await message.answer(
f"Оплата на сумму {message.successful_payment.total_amount // 100} {message.successful_payment.currency} прошла успешно!\n\nХорошего <b>Вам</b> настроения!")
Нужно передать сюда данные переменных для передачи геолокации
Вот пример как я использовал ето в отправке инвойса
@router.callback_query(F.data.startswith('payment_'))
async def payment_selected(callback: CallbackQuery):
payment_id = callback.data.split('_')[1]
payment = await get_payment(payment_id=payment_id)
amount = payment.price*100
PRICE = types.LabeledPrice(label='Како-то название', amount=amount)
await bot.send_invoice(
callback.from_user.id,
title="Новогоднее настроение!",
description="Инвестирование в хорошее настроение",
provider_token=config.PAYMENT_TOKEN,
currency="uah",
is_flexible=False,
prices=[PRICE],
start_parameter="first-pay-test",
payload="first-pay-invoice-test"
)