Skip to main content

Асинхронный Python модуль для работы с QIWI API.

Project description

EasyQiwi 🥝

Модуль easyqiwi - асинхронный Python модуль для работы с QIWI API. Он позволяет легко интегрировать функционал QIWI кошелька в ваши Python приложения. С помощью easyqiwi вы можете получать профиль пользователя, баланс счетов, историю платежей, генерировать счета и многое другое!

Основные возможности

  • Получение профиля пользователя 👤
  • Управление счетами 💳
  • Просмотр истории платежей 🔍
  • Создание счетов для оплаты (инвойсов) 🧾
  • Асинхронная работа ⚙️
  • Поддержка прокси 🌐
  • Есть обработка каптчи 🔒

Быстрый старт

Пример асинхронного использования easyqiwi для аутентификации в QIWI и создания счета для оплаты:

import asyncio
from easyqiwi import EasyQiwiAuthCore, EasyQiwiAPI, setup_proxy
from easyqiwi import AuthException

async def main():
    phone = '+79228133736'
    password = 'example'
    proxy_tuple = await setup_proxy('socks5', '162.210.192.136', '25881')

    qiwi = EasyQiwiAuthCore(phone, password, proxy_tuple)

    try:
        await qiwi.auth()
    except AuthException as e:
        print(e)
        exit()

    qiwi_api = EasyQiwiAPI(qiwi)
    p2p_resp = await qiwi_api.generate_p2p_public()
    p2p_key = p2p_resp['publicKey']
    widget_code = p2p_resp['widgetAliasCode']
    invoice_resp = await qiwi_api.create_invoice(p2p_key, widget_code, 100)
    invoice_uid = invoice_resp['invoice_uid']

    print(f'https://oplata.qiwi.com/form?invoiceUid={invoice_uid}')

    await qiwi.close()

if __name__ == '__main__':
    asyncio.run(main())

В этом примере мы создаем асинхронное соединение с QIWI, аутентифицируемся и создаем счет на оплату в 100 рублей.

Установка

Установить модуль easyqiwi можно через pip:

pip install easyqiwi

Небольшая документация

Аутентификация

Чтобы начать работу с QIWI API, необходимо произвести аутентификацию, используя номер телефона и пароль от QIWI кошелька:

qiwi = EasyQiwiAuthCore(phone, password)
await qiwi.auth()

Обработка каптчи

Можно обработать каптчу, если она выскакивает:

from easyqiwi import RecaptchaException

try:
	qiwi = EasyQiwiAuthCore(phone, password)
	await qiwi.auth()
except RecaptchaException as e:
	# и тут можно решать каптчу и затем вызвать
	await qiwi.auth(recaptcha='обработанная каптча')

Получение профиля

Получение данных профиля пользователя:

qiwi_api = EasyQiwiAPI(qiwi)
profile = await qiwi_api.get_current_profile()
print(profile)

История платежей

Получение истории платежей:

payments = await qiwi_api.get_payments(person_id, rows=10)
print(payments)

Создание инвойса

Генерация и отправка инвойса для оплаты:

invoice_resp = await qiwi_api.create_invoice(p2p_key, widget_code, 500, comment='За услуги')
invoice_uid = invoice_resp['invoice_uid']
print(f'Ссылка для оплаты: https://oplata.qiwi.com/form?invoiceUid={invoice_uid}')

Закрытие сессии

Не забудьте закрыть сессию при завершении работы:

await qiwi.close()

Прокси

Если вам необходимо использовать прокси, вы можете настроить его следующим образом:

proxy_tuple = await setup_proxy('socks5', 'proxy_ip', 'proxy_port', 'username', 'password')

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

easyqiwi-1.0.1.tar.gz (6.2 kB view hashes)

Uploaded Source

Built Distribution

easyqiwi-1.0.1-py3-none-any.whl (6.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page