Для оплаты через QIWI вместе с библиотекой aiogram на Python можно использовать следующие популярные библиотеки:
1. Qiwipy (https://github.com/sy1ntexx/qiwipy) - это простая и удобная библиотека для взаимодействия с QIWI API. Она предоставляет методы для создания и оплаты счетов, получения информации о балансе, истории операций и многого другого. Библиотека легко интегрируется с aiogram и позволяет создавать ботов, которые могут принимать платежи через QIWI.
Пример использования библиотеки Qiwipy с aiogram:
import qiwipy from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN' QIWI_TOKEN = 'YOUR_QIWI_API_TOKEN' bot = Bot(token=TOKEN) dp = Dispatcher(bot) qiwi_client = qiwipy.Qiwi(token=QIWI_TOKEN) # Обработчик команды /pay @dp.message_handler(commands=['pay']) async def pay(message: types.Message): # Создание счета через QIWI API payment = qiwi_client.create_payment(price=100, comment='Payment from bot') payment_id = payment['payment_id'] payment_url = payment['payment_url'] # Отправка пользователю ссылки на оплату await message.answer(f'Пожалуйста, оплатите по этой ссылке: {payment_url}') # Ожидание оплаты while True: # Получение информации о статусе платежа payment_info = qiwi_client.get_payment_info(payment_id=payment_id) status = payment_info['status'] if status == 'SUCCESS': await message.answer('Оплата прошла успешно!') break elif status == 'WAITING': await bot.send_message(message.chat.id, 'Ожидание оплаты...') else: await bot.send_message(message.chat.id, 'Произошла ошибка при оплате.') break if __name__ == '__main__': executor.start_polling(dp)
2. Qiwipy-Async (https://github.com/kubinka0505/Qiwipy-Async) - это асинхронная версия библиотеки Qiwipy. Она также позволяет взаимодействовать с QIWI API и удобна при использовании aiogram, так как обработка запросов в aiogram осуществляется асинхронно.
Пример использования библиотеки Qiwipy-Async с aiogram:
import qiwipy_async as qiwipy from aiogram import Bot, types from aiogram.dispatcher import Dispatcher from aiogram.utils import executor TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN' QIWI_TOKEN = 'YOUR_QIWI_API_TOKEN' bot = Bot(token=TOKEN) dp = Dispatcher(bot) qiwi_client = qiwipy.QiwiAsync(token=QIWI_TOKEN) # Обработчик команды /pay @dp.message_handler(commands=['pay']) async def pay(message: types.Message): # Создание счета через QIWI API payment = await qiwi_client.create_payment(price=100, comment='Payment from bot') payment_id = payment['payment_id'] payment_url = payment['payment_url'] # Отправка пользователю ссылки на оплату await message.answer(f'Пожалуйста, оплатите по этой ссылке: {payment_url}') # Ожидание оплаты while True: # Получение информации о статусе платежа payment_info = await qiwi_client.get_payment_info(payment_id=payment_id) status = payment_info['status'] if status == 'SUCCESS': await message.answer('Оплата прошла успешно!') break elif status == 'WAITING': await bot.send_message(message.chat.id, 'Ожидание оплаты...') else: await bot.send_message(message.chat.id, 'Произошла ошибка при оплате.') break if __name__ == '__main__': executor.start_polling(dp)
Оба примера позволяют создать команду /pay
, которая создает счет через QIWI API и отправляет пользователю ссылку на оплату. Затем, они ожидают оплаты и обновляют пользователю статус оплаты. Эти библиотеки предоставляют удобные методы для работы с платежами через QIWI и могут быть интегрированы в aiogram для создания ботов с возможностью приема платежей.