Name | easyqiwi JSON |
Version |
1.0.2
JSON |
| download |
home_page | https://github.com/DedInc/easyqiwi |
Summary | Асинхронный Python модуль для работы с QIWI API. |
upload_time | 2024-02-21 04:20:05 |
maintainer | |
docs_url | None |
author | Maehdakvan |
requires_python | >=3.6 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# EasyQiwi 🥝
Модуль `easyqiwi` - асинхронный Python модуль для работы с QIWI API. Он позволяет легко интегрировать функционал QIWI кошелька в ваши Python приложения. С помощью `easyqiwi` вы можете получать профиль пользователя, баланс счетов, историю платежей, генерировать счета и многое другое!
## Основные возможности
- Получение профиля пользователя 👤
- Управление счетами 💳
- Просмотр истории платежей 🔍
- Создание счетов для оплаты (инвойсов) 🧾
- Асинхронная работа ⚙️
- Поддержка прокси 🌐
- Есть обработка каптчи 🔒
- Использование аутентифицированной сессии в Selenium/Puppeteer и т.д. 🤖
## Быстрый старт
Пример асинхронного использования `easyqiwi` для аутентификации в QIWI и создания счета для оплаты:
```python
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 рублей.
## Использование аутентифицированной сессии
### Selenium
```python
import asyncio
from easyqiwi import EasyQiwiAuthCore
from easyqiwi import AuthException
from selenium import webdriver
async def main():
phone = '+79228133736'
password = 'example'
qiwi = EasyQiwiAuthCore(phone, password)
try:
await qiwi.auth()
except AuthException as e:
pass
cookies = qiwi.cookies
auth_data = qiwi.auth_data
await qiwi.close()
driver = webdriver.Chrome()
driver.get('https://qiwi.com/')
driver.get('https://qiwi.com/')
for cookie in cookies:
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')
await asyncio.sleep(100)
driver.quit()
if __name__ == '__main__':
asyncio.run(main())
```
### Pyppeteer
```python
import asyncio
from easyqiwi import EasyQiwiAuthCore
from easyqiwi import AuthException
from pyppeteer import launch
async def main():
phone = '+79228133736'
password = 'example'
qiwi = EasyQiwiAuthCore(phone, password)
try:
await qiwi.auth()
except AuthException as e:
pass
cookies = qiwi.cookies
auth_data = qiwi.auth_data
await qiwi.close()
browser = await launch(headless=False)
pages = await browser.pages()
page = pages[0]
for cookie in cookies:
await page.setCookie({'name': cookie['name'], 'value': cookie['value'], 'domain': cookie['domain']})
await page.goto('https://qiwi.com/')
await page.evaluate(f"localStorage.setItem('oauth-token-head', '{auth_data}')")
await page.goto('https://qiwi.com/main')
await asyncio.sleep(100)
await browser.close()
if __name__ == '__main__':
asyncio.run(main())
```
## Установка
Установить модуль `easyqiwi` можно через `pip`:
```bash
pip install easyqiwi
```
## Небольшая документация
### Аутентификация
Чтобы начать работу с QIWI API, необходимо произвести аутентификацию, используя номер телефона и пароль от QIWI кошелька:
```python
qiwi = EasyQiwiAuthCore(phone, password)
await qiwi.auth()
```
### Обработка каптчи
Можно обработать каптчу, если она выскакивает:
```python
from easyqiwi import RecaptchaException
try:
qiwi = EasyQiwiAuthCore(phone, password)
await qiwi.auth()
except RecaptchaException as e:
# и тут можно решать каптчу и затем вызвать
await qiwi.auth(recaptcha='обработанная каптча')
```
### Получение профиля
Получение данных профиля пользователя:
```python
qiwi_api = EasyQiwiAPI(qiwi)
profile = await qiwi_api.get_current_profile()
print(profile)
```
### История платежей
Получение истории платежей:
```python
payments = await qiwi_api.get_payments(person_id, rows=10)
print(payments)
```
### Создание инвойса
Генерация и отправка инвойса для оплаты:
```python
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}')
```
### Закрытие сессии
Не забудьте закрыть сессию при завершении работы:
```python
await qiwi.close()
```
## Прокси
Если вам необходимо использовать прокси, вы можете настроить его следующим образом:
```python
proxy_tuple = await setup_proxy('socks5', 'proxy_ip', 'proxy_port', 'username', 'password')
```
## Другие методы API
Помимо описанных выше, `easyqiwi` предоставляет доступ и к другим методам QIWI API:
### Источники финансирования
Получить список источников финансирования пользователя:
```python
sources = await qiwi_api.get_sources(person_id)
```
### Идентификация
Получить данные по идентификации пользователя:
```python
identification = await qiwi_api.get_identification(person_id)
```
### Счета
Получить количество неоплаченных счетов по их статусам:
```python
checkouts = await qiwi_api.get_checkouts()
```
### Карты
Получить данные по привязанным картам пользователя:
```python
cards = await qiwi_api.get_cards()
```
### Общая сумма платежей
Получить общую сумму входящих/исходящих платежей за период:
```python
total_payments = await qiwi_api.get_total_payments(person_id, start_date, end_date)
```
### Транзакция
Получить информацию по конкретной транзакции:
```python
transaction = await qiwi_api.get_transactions(transaction_id)
```
Raw data
{
"_id": null,
"home_page": "https://github.com/DedInc/easyqiwi",
"name": "easyqiwi",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.6",
"maintainer_email": "",
"keywords": "",
"author": "Maehdakvan",
"author_email": "visitanimation@google.com",
"download_url": "https://files.pythonhosted.org/packages/7d/8e/1158ade8af6e7a0fd495217bb5d08d56c25df243ff17b1bed628501fd5a9/easyqiwi-1.0.2.tar.gz",
"platform": null,
"description": "# EasyQiwi \ud83e\udd5d\r\n\r\n\u041c\u043e\u0434\u0443\u043b\u044c `easyqiwi` - \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 Python \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 QIWI API. \u041e\u043d \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u043b\u0435\u0433\u043a\u043e \u0438\u043d\u0442\u0435\u0433\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b QIWI \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430 \u0432 \u0432\u0430\u0448\u0438 Python \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f. \u0421 \u043f\u043e\u043c\u043e\u0449\u044c\u044e `easyqiwi` \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u044c \u043f\u0440\u043e\u0444\u0438\u043b\u044c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f, \u0431\u0430\u043b\u0430\u043d\u0441 \u0441\u0447\u0435\u0442\u043e\u0432, \u0438\u0441\u0442\u043e\u0440\u0438\u044e \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439, \u0433\u0435\u043d\u0435\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0447\u0435\u0442\u0430 \u0438 \u043c\u043d\u043e\u0433\u043e\u0435 \u0434\u0440\u0443\u0433\u043e\u0435!\r\n\r\n## \u041e\u0441\u043d\u043e\u0432\u043d\u044b\u0435 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0438\r\n\r\n- \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f \ud83d\udc64\r\n- \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u0430\u043c\u0438 \ud83d\udcb3\r\n- \u041f\u0440\u043e\u0441\u043c\u043e\u0442\u0440 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \ud83d\udd0d\r\n- \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0447\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u043e\u043f\u043b\u0430\u0442\u044b (\u0438\u043d\u0432\u043e\u0439\u0441\u043e\u0432) \ud83e\uddfe\r\n- \u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u0430\u044f \u0440\u0430\u0431\u043e\u0442\u0430 \u2699\ufe0f\r\n- \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u043f\u0440\u043e\u043a\u0441\u0438 \ud83c\udf10\r\n- \u0415\u0441\u0442\u044c \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u0430\u043f\u0442\u0447\u0438 \ud83d\udd12\r\n- \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438 \u0432 Selenium/Puppeteer \u0438 \u0442.\u0434. \ud83e\udd16\r\n\r\n\r\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n\u041f\u0440\u0438\u043c\u0435\u0440 \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0433\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f `easyqiwi` \u0434\u043b\u044f \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u0432 QIWI \u0438 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u0447\u0435\u0442\u0430 \u0434\u043b\u044f \u043e\u043f\u043b\u0430\u0442\u044b:\r\n\r\n```python\r\nimport asyncio\r\nfrom easyqiwi import EasyQiwiAuthCore, EasyQiwiAPI, setup_proxy\r\nfrom easyqiwi import AuthException\r\n\r\nasync def main():\r\n phone = '+79228133736'\r\n password = 'example'\r\n proxy_tuple = await setup_proxy('socks5', '162.210.192.136', '25881')\r\n\r\n qiwi = EasyQiwiAuthCore(phone, password, proxy_tuple)\r\n\r\n try:\r\n await qiwi.auth()\r\n except AuthException as e:\r\n print(e)\r\n exit()\r\n\r\n qiwi_api = EasyQiwiAPI(qiwi)\r\n p2p_resp = await qiwi_api.generate_p2p_public()\r\n p2p_key = p2p_resp['publicKey']\r\n widget_code = p2p_resp['widgetAliasCode']\r\n invoice_resp = await qiwi_api.create_invoice(p2p_key, widget_code, 100)\r\n invoice_uid = invoice_resp['invoice_uid']\r\n\r\n print(f'https://oplata.qiwi.com/form?invoiceUid={invoice_uid}')\r\n\r\n await qiwi.close()\r\n\r\nif __name__ == '__main__':\r\n asyncio.run(main())\r\n```\r\n\r\n\u0412 \u044d\u0442\u043e\u043c \u043f\u0440\u0438\u043c\u0435\u0440\u0435 \u043c\u044b \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0430\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u043e\u0435 \u0441\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u0438\u0435 \u0441 QIWI, \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u0443\u0435\u043c\u0441\u044f \u0438 \u0441\u043e\u0437\u0434\u0430\u0435\u043c \u0441\u0447\u0435\u0442 \u043d\u0430 \u043e\u043f\u043b\u0430\u0442\u0443 \u0432 100 \u0440\u0443\u0431\u043b\u0435\u0439.\r\n\r\n## \u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0439 \u0441\u0435\u0441\u0441\u0438\u0438\r\n\r\n### Selenium\r\n\r\n```python\r\nimport asyncio\r\nfrom easyqiwi import EasyQiwiAuthCore\r\nfrom easyqiwi import AuthException\r\nfrom selenium import webdriver\r\n\r\nasync def main():\r\n phone = '+79228133736'\r\n password = 'example'\r\n\r\n qiwi = EasyQiwiAuthCore(phone, password)\r\n\r\n try:\r\n await qiwi.auth()\r\n except AuthException as e:\r\n pass\r\n\r\n cookies = qiwi.cookies\r\n auth_data = qiwi.auth_data\r\n\r\n await qiwi.close()\r\n\r\n driver = webdriver.Chrome()\r\n driver.get('https://qiwi.com/')\r\n\r\n driver.get('https://qiwi.com/')\r\n\r\n for cookie in cookies:\r\n driver.add_cookie({\r\n 'name': cookie['name'],\r\n 'value': cookie['value'],\r\n 'domain': cookie['domain']\r\n })\r\n\r\n driver.execute_script(f\"localStorage.setItem('oauth-token-head', '{auth_data}');\")\r\n\r\n driver.get('https://qiwi.com/main')\r\n await asyncio.sleep(100)\r\n driver.quit()\r\n\r\nif __name__ == '__main__':\r\n asyncio.run(main())\r\n```\r\n\r\n### Pyppeteer\r\n\r\n```python\r\nimport asyncio\r\nfrom easyqiwi import EasyQiwiAuthCore\r\nfrom easyqiwi import AuthException\r\nfrom pyppeteer import launch\r\n\r\nasync def main():\r\n phone = '+79228133736'\r\n password = 'example'\r\n\r\n qiwi = EasyQiwiAuthCore(phone, password)\r\n\r\n try:\r\n await qiwi.auth()\r\n except AuthException as e:\r\n pass\r\n\r\n cookies = qiwi.cookies\r\n auth_data = qiwi.auth_data\r\n\r\n await qiwi.close()\r\n\r\n browser = await launch(headless=False)\r\n pages = await browser.pages()\r\n page = pages[0]\r\n\r\n for cookie in cookies:\r\n await page.setCookie({'name': cookie['name'], 'value': cookie['value'], 'domain': cookie['domain']})\r\n\r\n await page.goto('https://qiwi.com/')\r\n await page.evaluate(f\"localStorage.setItem('oauth-token-head', '{auth_data}')\")\r\n await page.goto('https://qiwi.com/main')\r\n await asyncio.sleep(100)\r\n await browser.close()\r\n\r\nif __name__ == '__main__':\r\n asyncio.run(main())\r\n```\r\n\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u044c \u043c\u043e\u0434\u0443\u043b\u044c `easyqiwi` \u043c\u043e\u0436\u043d\u043e \u0447\u0435\u0440\u0435\u0437 `pip`:\r\n\r\n```bash\r\npip install easyqiwi\r\n```\r\n\r\n## \u041d\u0435\u0431\u043e\u043b\u044c\u0448\u0430\u044f \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\r\n\r\n### \u0410\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\r\n\r\n\u0427\u0442\u043e\u0431\u044b \u043d\u0430\u0447\u0430\u0442\u044c \u0440\u0430\u0431\u043e\u0442\u0443 \u0441 QIWI API, \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0441\u0442\u0438 \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044e, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044f \u043d\u043e\u043c\u0435\u0440 \u0442\u0435\u043b\u0435\u0444\u043e\u043d\u0430 \u0438 \u043f\u0430\u0440\u043e\u043b\u044c \u043e\u0442 QIWI \u043a\u043e\u0448\u0435\u043b\u044c\u043a\u0430:\r\n\r\n```python\r\nqiwi = EasyQiwiAuthCore(phone, password)\r\nawait qiwi.auth()\r\n```\r\n\r\n### \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043a\u0430\u043f\u0442\u0447\u0438\r\n\r\n\u041c\u043e\u0436\u043d\u043e \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u043a\u0430\u043f\u0442\u0447\u0443, \u0435\u0441\u043b\u0438 \u043e\u043d\u0430 \u0432\u044b\u0441\u043a\u0430\u043a\u0438\u0432\u0430\u0435\u0442:\r\n\r\n```python\r\nfrom easyqiwi import RecaptchaException\r\n\r\ntry:\r\n\tqiwi = EasyQiwiAuthCore(phone, password)\r\n\tawait qiwi.auth()\r\nexcept RecaptchaException as e:\r\n\t# \u0438 \u0442\u0443\u0442 \u043c\u043e\u0436\u043d\u043e \u0440\u0435\u0448\u0430\u0442\u044c \u043a\u0430\u043f\u0442\u0447\u0443 \u0438 \u0437\u0430\u0442\u0435\u043c \u0432\u044b\u0437\u0432\u0430\u0442\u044c\r\n\tawait qiwi.auth(recaptcha='\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0430\u043d\u043d\u0430\u044f \u043a\u0430\u043f\u0442\u0447\u0430')\r\n```\r\n\r\n### \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0444\u0438\u043b\u044f\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u043e\u0444\u0438\u043b\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:\r\n\r\n```python\r\nqiwi_api = EasyQiwiAPI(qiwi)\r\nprofile = await qiwi_api.get_current_profile()\r\nprint(profile)\r\n```\r\n\r\n### \u0418\u0441\u0442\u043e\u0440\u0438\u044f \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0438\u0441\u0442\u043e\u0440\u0438\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439:\r\n\r\n```python\r\npayments = await qiwi_api.get_payments(person_id, rows=10)\r\nprint(payments)\r\n```\r\n\r\n### \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438\u043d\u0432\u043e\u0439\u0441\u0430\r\n\r\n\u0413\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u044f \u0438 \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0430 \u0438\u043d\u0432\u043e\u0439\u0441\u0430 \u0434\u043b\u044f \u043e\u043f\u043b\u0430\u0442\u044b:\r\n\r\n```python\r\ninvoice_resp = await qiwi_api.create_invoice(p2p_key, widget_code, 500, comment='\u0417\u0430 \u0443\u0441\u043b\u0443\u0433\u0438')\r\ninvoice_uid = invoice_resp['invoice_uid']\r\nprint(f'\u0421\u0441\u044b\u043b\u043a\u0430 \u0434\u043b\u044f \u043e\u043f\u043b\u0430\u0442\u044b: https://oplata.qiwi.com/form?invoiceUid={invoice_uid}')\r\n```\r\n\r\n### \u0417\u0430\u043a\u0440\u044b\u0442\u0438\u0435 \u0441\u0435\u0441\u0441\u0438\u0438\r\n\r\n\u041d\u0435 \u0437\u0430\u0431\u0443\u0434\u044c\u0442\u0435 \u0437\u0430\u043a\u0440\u044b\u0442\u044c \u0441\u0435\u0441\u0441\u0438\u044e \u043f\u0440\u0438 \u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0438 \u0440\u0430\u0431\u043e\u0442\u044b:\r\n\r\n```python\r\nawait qiwi.close()\r\n```\r\n\r\n## \u041f\u0440\u043e\u043a\u0441\u0438\r\n\r\n\u0415\u0441\u043b\u0438 \u0432\u0430\u043c \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u043e\u043a\u0441\u0438, \u0432\u044b \u043c\u043e\u0436\u0435\u0442\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0435\u0433\u043e \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u043c \u043e\u0431\u0440\u0430\u0437\u043e\u043c:\r\n\r\n```python\r\nproxy_tuple = await setup_proxy('socks5', 'proxy_ip', 'proxy_port', 'username', 'password')\r\n```\r\n\r\n## \u0414\u0440\u0443\u0433\u0438\u0435 \u043c\u0435\u0442\u043e\u0434\u044b API\r\n\r\n\u041f\u043e\u043c\u0438\u043c\u043e \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432\u044b\u0448\u0435, `easyqiwi` \u043f\u0440\u0435\u0434\u043e\u0441\u0442\u0430\u0432\u043b\u044f\u0435\u0442 \u0434\u043e\u0441\u0442\u0443\u043f \u0438 \u043a \u0434\u0440\u0443\u0433\u0438\u043c \u043c\u0435\u0442\u043e\u0434\u0430\u043c QIWI API:\r\n\r\n### \u0418\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u0438 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u043f\u0438\u0441\u043e\u043a \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432 \u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:\r\n\r\n```python\r\nsources = await qiwi_api.get_sources(person_id)\r\n```\r\n\r\n### \u0418\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f: \r\n\r\n```python \r\nidentification = await qiwi_api.get_identification(person_id)\r\n```\r\n\r\n### \u0421\u0447\u0435\u0442\u0430\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u043d\u0435\u043e\u043f\u043b\u0430\u0447\u0435\u043d\u043d\u044b\u0445 \u0441\u0447\u0435\u0442\u043e\u0432 \u043f\u043e \u0438\u0445 \u0441\u0442\u0430\u0442\u0443\u0441\u0430\u043c:\r\n\r\n```python\r\ncheckouts = await qiwi_api.get_checkouts() \r\n```\r\n\r\n### \u041a\u0430\u0440\u0442\u044b\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043f\u043e \u043f\u0440\u0438\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u043c \u043a\u0430\u0440\u0442\u0430\u043c \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f:\r\n\r\n```python\r\ncards = await qiwi_api.get_cards()\r\n``` \r\n\r\n### \u041e\u0431\u0449\u0430\u044f \u0441\u0443\u043c\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u043e\u0431\u0449\u0443\u044e \u0441\u0443\u043c\u043c\u0443 \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0445/\u0438\u0441\u0445\u043e\u0434\u044f\u0449\u0438\u0445 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439 \u0437\u0430 \u043f\u0435\u0440\u0438\u043e\u0434:\r\n\r\n```python\r\ntotal_payments = await qiwi_api.get_total_payments(person_id, start_date, end_date)\r\n```\r\n\r\n### \u0422\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u044f\r\n\r\n\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044e \u043f\u043e \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0442\u0440\u0430\u043d\u0437\u0430\u043a\u0446\u0438\u0438:\r\n\r\n```python\r\ntransaction = await qiwi_api.get_transactions(transaction_id) \r\n```\r\n",
"bugtrack_url": null,
"license": "",
"summary": "\u0410\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u043d\u044b\u0439 Python \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0441 QIWI API.",
"version": "1.0.2",
"project_urls": {
"Bug Tracker": "https://github.com/DedInc/easyqiwi/issues",
"Homepage": "https://github.com/DedInc/easyqiwi"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "03e2c3ad79b8ef31eec3560afa345f89138788a22353ab71c4a2b3bd3975170d",
"md5": "ceb172101524ac769f0db075803bea69",
"sha256": "7c592c1d7bd1f7704e88b8732c866e10601542ab43c48b3c133d625f0a2f98f8"
},
"downloads": -1,
"filename": "easyqiwi-1.0.2-py3-none-any.whl",
"has_sig": false,
"md5_digest": "ceb172101524ac769f0db075803bea69",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.6",
"size": 7297,
"upload_time": "2024-02-21T04:20:03",
"upload_time_iso_8601": "2024-02-21T04:20:03.932994Z",
"url": "https://files.pythonhosted.org/packages/03/e2/c3ad79b8ef31eec3560afa345f89138788a22353ab71c4a2b3bd3975170d/easyqiwi-1.0.2-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7d8e1158ade8af6e7a0fd495217bb5d08d56c25df243ff17b1bed628501fd5a9",
"md5": "d3b474b88a8b9eb0f7a3bd8f5400ec4c",
"sha256": "a1c0c775c0deeb97a9c3273b96386fc4c130319da062964fe0cd2240fc975328"
},
"downloads": -1,
"filename": "easyqiwi-1.0.2.tar.gz",
"has_sig": false,
"md5_digest": "d3b474b88a8b9eb0f7a3bd8f5400ec4c",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.6",
"size": 7558,
"upload_time": "2024-02-21T04:20:05",
"upload_time_iso_8601": "2024-02-21T04:20:05.883471Z",
"url": "https://files.pythonhosted.org/packages/7d/8e/1158ade8af6e7a0fd495217bb5d08d56c25df243ff17b1bed628501fd5a9/easyqiwi-1.0.2.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-21 04:20:05",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "DedInc",
"github_project": "easyqiwi",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "easyqiwi"
}