
Как подключить Payme к Telegram боту на Python
pywave 1 минуту назад Как подключить Payme к Telegram боту на Python Средний 9 мин 0 Python * Туториал Из песочницы Всем привет! В этой статье разберём как подключить Payme — одну из самых популярных платёжных систем...
Вот важная новость с фронта ИИ: pywave 1 минуту назад Как подключить Payme к Telegram боту на Python Средний 9 мин 0 Python * Туториал Из песочницы Всем привет! В этой статье разберём как подключить Payme — одну из самых популярных платёжных систем Узбекистана — к Telegram боту на Python. Для этого мы будем использовать библиотеку aiopayme — async-first решение с роутерами и dependency injection как в aiogram и FastAPI.
В конце статьи вы получите полностью рабочую интеграцию: бот принимает команду /pay, пользователь оплачивает через Payme, бот получает уведомление об успешной оплате. Установка pip install aiopaymeЧто такое aiopayme? aiopayme — это асинхронная Python библиотека для интеграции платёжной системы Payme.
Технические детали
Главная особенность — роутерная архитектура, знакомая каждому кто работал с aiogram или FastAPI:from aiopayme import Router router = Router() @router. check_perform_transaction() async def check_perform(ctx: CheckPerformTransactionCtx, db: AsyncSession): ... Единственная зависимость — httpx.
Библиотека не навязывает ORM, фреймворк или структуру проекта. Модели Создадим две модели — заказ и транзакцию Payme. py import enum from sqlalchemy import Column, BigInteger, Integer, String from sqlalchemy.
orm import DeclarativeBase class Base(DeclarativeBase): pass class OrderStatus(enum. Enum): PENDING = "pending" PAID = "paid" CANCELED = "canceled" class Order(Base): __tablename__ = "orders" id = Column(Integer, primary_key=True) telegram_id = Column(BigInteger, nullable=False) amount = Column(BigInteger, nullable=False) status = Column(String, default=OrderStatus. value) payme_transaction_id = Column(String, nullable=True)# models/payme.
Отраслевые последствия
py from sqlalchemy import Column, Integer, String, BigInteger from models. order import Base class PaymeTransaction(Base): __tablename__ = "payme_transactions" id = Column(Integer, primary_key=True) payme_id = Column(String, unique=True, nullable=False) order_id = Column(Integer, nullable=True) state = Column(Integer, default=1) amount = Column(BigInteger, nullable=False) create_time = Column(BigInteger, nullable=False) perform_time = Column(BigInteger, default=0) cancel_time = Column(BigInteger, default=0) reason = Column(Integer, nullable=True)PaymeService Вынесем всю бизнес-логику в отдельный сервис. Это сделает хендлеры чистыми и логику легко тестируемой.
Создаём services/payme. py: # services/payme. py from sqlalchemy import select, update from sqlalchemy.
asyncio import AsyncSession from aiopayme. exceptions import Errors from aiopayme. utils import time_to_payme from aiopayme.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.




