Package: easyqiwi
EasyQiwi 🥝Модульeasyqiwi- асинхронный Python модуль для работы с QIWI API. Он позволяет легко интегрировать функционал QIWI кошелька в ваши Python приложения. С помощьюeasyqiwiвы можете получать профиль пользователя, баланс счетов, историю платежей, генерировать счета и многое другое!Основные возможностиПолучение профиля пользователя 👤Управление счетами 💳Просмотр истории платежей 🔍Создание счетов для оплаты (инвойсов) 🧾Асинхронная работа ⚙️Поддержка прокси 🌐Есть обработка каптчи 🔒Использование аутентифицированной сессии в Selenium/Puppeteer и т.д. 🤖Быстрый стартПример асинхронного использованияeasyqiwiдля аутентификации в QIWI и создания счета для оплаты:importasynciofromeasyqiwiimportEasyQiwiAuthCore,EasyQiwiAPI,setup_proxyfromeasyqiwiimportAuthExceptionasyncdefmain():phone='+79228133736'password='example'proxy_tuple=awaitsetup_proxy('socks5','162.210.192.136','25881')qiwi=EasyQiwiAuthCore(phone,password,proxy_tuple)try:awaitqiwi.auth()exceptAuthExceptionase:print(e)exit()qiwi_api=EasyQiwiAPI(qiwi)p2p_resp=awaitqiwi_api.generate_p2p_public()p2p_key=p2p_resp['publicKey']widget_code=p2p_resp['widgetAliasCode']invoice_resp=awaitqiwi_api.create_invoice(p2p_key,widget_code,100)invoice_uid=invoice_resp['invoice_uid']print(f'https://oplata.qiwi.com/form?invoiceUid={invoice_uid}')awaitqiwi.close()if__name__=='__main__':asyncio.run(main())В этом примере мы создаем асинхронное соединение с QIWI, аутентифицируемся и создаем счет на оплату в 100 рублей.Использование аутентифицированной сессииSeleniumimportasynciofromeasyqiwiimportEasyQiwiAuthCorefromeasyqiwiimportAuthExceptionfromseleniumimportwebdriverasyncdefmain():phone='+79228133736'password='example'qiwi=EasyQiwiAuthCore(phone,password)try:awaitqiwi.auth()exceptAuthExceptionase:passcookies=qiwi.cookiesauth_data=qiwi.auth_dataawaitqiwi.close()driver=webdriver.Chrome()driver.get('https://qiwi.com/')driver.get('https://qiwi.com/')forcookieincookies:driver.add_cookie({'name':cookie['name'],'value':cookie['value'],'domain':cookie['domain']})driver.execute_script(f"localStorage.setItem('oauth-token-head', '{auth_data}');")driver.get('https://qiwi.com/main')awaitasyncio.sleep(100)driver.quit()if__name__=='__main__':asyncio.run(main())PyppeteerimportasynciofromeasyqiwiimportEasyQiwiAuthCorefromeasyqiwiimportAuthExceptionfrompyppeteerimportlaunchasyncdefmain():phone='+79228133736'password='example'qiwi=EasyQiwiAuthCore(phone,password)try:awaitqiwi.auth()exceptAuthExceptionase:passcookies=qiwi.cookiesauth_data=qiwi.auth_dataawaitqiwi.close()browser=awaitlaunch(headless=False)pages=awaitbrowser.pages()page=pages[0]forcookieincookies:awaitpage.setCookie({'name':cookie['name'],'value':cookie['value'],'domain':cookie['domain']})awaitpage.goto('https://qiwi.com/')awaitpage.evaluate(f"localStorage.setItem('oauth-token-head', '{auth_data}')")awaitpage.goto('https://qiwi.com/main')awaitasyncio.sleep(100)awaitbrowser.close()if__name__=='__main__':asyncio.run(main())УстановкаУстановить модульeasyqiwiможно черезpip:pipinstalleasyqiwiНебольшая документацияАутентификацияЧтобы начать работу с QIWI API, необходимо произвести аутентификацию, используя номер телефона и пароль от QIWI кошелька:qiwi=EasyQiwiAuthCore(phone,password)awaitqiwi.auth()Обработка каптчиМожно обработать каптчу, если она выскакивает:fromeasyqiwiimportRecaptchaExceptiontry:qiwi=EasyQiwiAuthCore(phone,password)awaitqiwi.auth()exceptRecaptchaExceptionase:# и тут можно решать каптчу и затем вызватьawaitqiwi.auth(recaptcha='обработанная каптча')Получение профиляПолучение данных профиля пользователя:qiwi_api=EasyQiwiAPI(qiwi)profile=awaitqiwi_api.get_current_profile()print(profile)История платежейПолучение истории платежей:payments=awaitqiwi_api.get_payments(person_id,rows=10)print(payments)Создание инвойсаГенерация и отправка инвойса для оплаты:invoice_resp=awaitqiwi_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}')Закрытие сессииНе забудьте закрыть сессию при завершении работы:awaitqiwi.close()ПроксиЕсли вам необходимо использовать прокси, вы можете настроить его следующим образом:proxy_tuple=awaitsetup_proxy('socks5','proxy_ip','proxy_port','username','password')Другие методы APIПомимо описанных выше,easyqiwiпредоставляет доступ и к другим методам QIWI API:Источники финансированияПолучить список источников финансирования пользователя:sources=awaitqiwi_api.get_sources(person_id)ИдентификацияПолучить данные по идентификации пользователя:identification=awaitqiwi_api.get_identification(person_id)СчетаПолучить количество неоплаченных счетов по их статусам:checkouts=awaitqiwi_api.get_checkouts()КартыПолучить данные по привязанным картам пользователя:cards=awaitqiwi_api.get_cards()Общая сумма платежейПолучить общую сумму входящих/исходящих платежей за период:total_payments=awaitqiwi_api.get_total_payments(person_id,start_date,end_date)ТранзакцияПолучить информацию по конкретной транзакции:transaction=awaitqiwi_api.get_transactions(transaction_id)