Асинхронная Python библиотека для работы с API YooMoney.
Основано на репозитории: AlekseyKorshuk/yoomoney-api
Библиотека разработана на основе официальной документации YooMoney.
Реализованные методы:
- Получение токена доступа для доступа к API сервису
- Информация об аккаунте - Получение информации о статусе пользовательского аккаунта
- История операций - Просмотр полной или частичной истории операций с постраничной навигацией
- Детали операции - Подробная информация о конкретной операции
- Формы быстрой оплаты - Встраиваемые платежные формы для перевода средств
Установка через pip:
pip install aioyoomoney-apiУстановка из исходников:
git clone https://github.com/paranoik1/aioyoomoney-api
cd aioyoomoney-api
pip install .- Войдите в свой YooMoney кошелек. Если у вас его нет - создайте
- Перейдите на страницу регистрации приложения
- Заполните параметры приложения. Сохраните CLIENT_ID и REDIRECT_URI
- Нажмите кнопку "Подтвердить"
- Замените YOUR_CLIENT_ID, YOUR_REDIRECT_URI и YOUR_CLIENT_SECRET на реальные значения
from aioyoomoney import authorize
token = authorize(
client_id=CLIENT_ID,
redirect_uri=REDIRECT_URI,
client_secret=CLIENT_SECRET,
scope=[
"account-info",
"operation-history",
"operation-details",
"incoming-transfers",
"payment-p2p",
]
)
print(token)import asyncio
from aioyoomoney import Client
async def client_info():
client = Client(YOUR_TOKEN)
account = await client.account_info()
print(f"Аккаунт: {account.id}")
print(f"Баланс: {account.balance}")
print(f"Валюта: {account.currency}")
print(f"Статус: {account.account_status}")
print(f"Тип аккаунта: {account.account_type}")
print(f"Детали баланса: {account.balance_details}")
print(f"Привязанные карты: {account.cards_linked}")
asyncio.run(client_info())import asyncio
from aioyoomoney import Client
from dataclasses import fields
async def get_operation_history():
client = Client(YOUR_TOKEN)
history = await client.operation_history()
print("Следующая запись:", history.next_record)
for operation in history.operations:
for field in fields(operation):
if field.name != "kwargs":
print(f"{field.name} -> {operation[field.name]}")
for key, value in operation.kwargs.items():
print(f"{key} -> {value}")
print("="*30)
asyncio.run(get_operation_history())import asyncio
from aioyoomoney import Client
from dataclasses import fields
async def get_operation_details():
client = Client(YOUR_TOKEN)
operation = await client.operation_details(OPERATION_ID)
for field in fields(operation):
if field.name != "kwargs":
print(f"{field.name} -> {operation[field.name]}")
for key, value in operation.kwargs.items():
print(f"{key} -> {value}")
asyncio.run(get_operation_details())import asyncio
from aioyoomoney import Quickpay
async def quickpay(receiver: str, sum: int, label: str = None):
async with Quickpay(
receiver=receiver,
sum=sum,
label=label
) as quickpay:
print(f"URL: {quickpay.redirected_url}")
print(f"Базовый URL с параметрами: {quickpay.base_url}")
print(f"Параметры: {quickpay.payload}")
asyncio.run(quickpay("4100111111111111", 5000, "test-label-quickpay"))