Aiogram 3 внес ряд изменений в подход к программированию ботов на базе этой библиотеки. В частности, диспетчеризация событий теперь строится на основе встроенных предикатов и более функционального стиля описания обработчиков.
Предположим, у вас есть функция, которая обрабатывает успешную оплату в Aiogram 2, и теперь вы хотите изменить её для Aiogram 3. В Aiogram 3 для реакции на успешную оплату можно использовать класс `Message` и проверку на содержание в нем `successful_payment`.
В Aiogram 3 также изменился способ добавления хэндлеров - вместо `dp.register_message_handler` теперь используется конструкция с декораторами. Вот пример кода, который обрабатывает успешную оплату и отправляет подтверждающее сообщение с ссылкой на Google-документ:
```python
from aiogram import Bot, Dispatcher, executor, types
from aiogram.types import ContentType
API_TOKEN = 'your_bot_api_token'
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
# Функция-обработчик успешной оплаты
@dp.message(content_types=ContentType.SUCCESSFUL_PAYMENT)
async def process_successful_payment(message: types.Message):
# Здесь можно добавить логику проверки данных об оплате, если это необходимо
# Например: payment_info = message.successful_payment
# Отправляем пользователю подтверждающее сообщение
await bot.send_message(
chat_id=message.chat.id,
text="Спасибо за оплату! Ваша транзакция прошла успешно. "
"Вот ваша ссылка на Google-документ: https://docs.google.com/document/d/your_document_id",
)
if __name__ == '__main__':
# Запускаем бота
executor.start_polling(dp, skip_updates=True)
```
Не забудьте заменить `'your_bot_api_token'` и `'your_document_id'` на актуальные значения.
Обратите внимание, что в Aiogram 3 классы `ContentType` используются для указания типов сообщений, и `Dispatcher` больше не принимает параметры на этапе создания - вместо этого все процессы настройки происходят через методы и свойства уже созданного экземпляра.
Если у вас возникнут вопросы по миграции кода или вам потребуется более подробная помощь в разработке бота на Aiogram 3, не стесняйтесь обращаться. В документации Aiogram 3 также есть много подробностей о новых возможностях и изменениях по сравнению с предыдущей версией.