Light and fast wrapper for qiwi and yoomoney
Project description
glQiwiApi
New feature. Add YooMoney support to library!:fireworks:
Installation
pip install glQiwiApi
Dependencies
Library | Description |
---|---|
aiohttp | default http server |
aiofiles | saving receipts in pdf |
aiosocks | to connect a SOCKS5 proxy |
uvloop | Optional(can boost API), but work only on Linux |
Dive-in Examples
import asyncio
from glQiwiApi import QiwiWrapper
async def main():
wallet = QiwiWrapper(
api_access_token='your_token',
phone_number='+number'
)
# Данным вызовом вы получите словарь с 2 ключами, текущим балансом и currency(код валюты)
print(await wallet.get_balance())
asyncio.run(main())
Checking transactions
import asyncio
from glQiwiApi import QiwiWrapper
async def main():
wallet = QiwiWrapper(
api_access_token='your_token',
phone_number='+number'
)
# Таким образом мы проверим, была ли транзакция на сумму 999 рублей с комментарием
# 'I like glQiwiApi!' и отправителем с номером +7904832168
is_paid = await wallet.check_transaction(
amount=999,
comment='I like glQiwiApi!',
sender_number='+7904832168'
)
print(is_paid)
asyncio.run(main())
Create & check p2p bills
import asyncio
from glQiwiApi import QiwiWrapper
async def main():
wallet = QiwiWrapper(
api_access_token='your_token',
phone_number='+number'
)
# Таким образом можно создать p2p счет
# В примере указан счёт на 1 рубль с комментарием some_comment
bill = await wallet.create_p2p_bill(
amount=1,
comment='my_comm'
)
# Проверка на статус "оплачено" созданного p2p счёта
if (await wallet.check_p2p_bill_status(bill_id=bill.bill_id)) == 'PAID':
print('Успешно оплачено')
else:
print('Транзакция не найдена')
asyncio.run(main())
That will create a form like that
Send to another wallet & get receipt(получение чека транзакции)
import asyncio
from glQiwiApi import QiwiWrapper
async def main():
wallet = QiwiWrapper(
api_access_token='your_token',
phone_number='+number'
)
# Так выглядит перевод на другой киви кошелек
# в примере перевод будет на номер +7904832168 с комментарием "На шоколадку" и суммой 1 рубль
trans_id = await wallet.to_wallet(
to_number='+7904832168',
comment='На шоколадку',
trans_sum=1
)
# В данном примере мы сохраним чек в директории, где вы запускаете скрипт как my_receipt.pdf
await wallet.get_receipt(
transaction_id=trans_id,
transaction_type='OUT',
file_path='my_receipt'
)
asyncio.run(main())
Send to card & check commission
import asyncio
from glQiwiApi import QiwiWrapper
async def main():
wallet = QiwiWrapper(
api_access_token='your_token',
phone_number='+number'
)
# Так можно отправлять средства на карты разных банков, получая при этом айди транзакции
trans_id = await wallet.to_card(
trans_sum=1,
to_card='4731219185432123'
)
print(trans_id)
# Так можно предварительно расчитать комиссию за транзакцию
commission = await wallet.commission(
to_account='4731219185432123',
pay_sum=1
)
print(commission.qw_commission)
asyncio.run(main())
YooMoney API
Important. How to get YooMoney access token
-
Регистрируем своё приложение в YooMoney по ссылке: click
-
Получаем client_id после регистрации и далее используем уже YooMoneyAPI:
import asyncio
from glQiwiApi import YooMoneyAPI
async def get_url_to_auth() -> None:
# Получаем ссылку для авторизации, переходим по ней, если получаем invalid_request или какую-то ошибку
# значит либо неправильно передан scope параметр, нужно уменьшить список прав или попробовать пересоздать приложение
print(await YooMoneyAPI.build_url_for_auth(
# Для платежей, проверки аккаунта и истории платежей, нужно указать scope=["account-info", "operation-history", "operation-details", "payment-p2p"]
scope=["account-info", "operation-history"],
client_id='айди, полученный при регистрации приложения выше',
redirect_uri='ссылка, указаная при регистрации выше в поле Redirect URI'
))
asyncio.run(get_url_to_auth())
-
Теперь нужно получить временный код и МАКСИМАЛЬНО БЫСТРО получить токен, используя class method YooMoneyAPI:
import asyncio
from glQiwiApi import YooMoneyAPI
async def get_token() -> None:
print(await YooMoneyAPI.get_access_token(
code='код полученный из ссылки, как на скрине выше',
client_id='айди приложения, полученое при регистрации',
redirect_uri='ссылка, указанная при регистрации'
))
asyncio.run(get_token())
Dive-in Examples
import asyncio
from glQiwiApi import YooMoneyAPI
TOKEN = 'some_token'
async def main():
wallet = YooMoneyAPI(
api_access_token=TOKEN
)
transactions = await wallet.transactions()
print(transactions)
asyncio.run(main())
Send money to another wallet and checking this transaction
import asyncio
from glQiwiApi import YooMoneyAPI
TOKEN = 'your_token'
async def main():
w = YooMoneyAPI(TOKEN)
# Так вы можете отослать средства на другой счет, в примере это перевод на аккаунт 4100116602400968
# на сумму 2 рубля с комментарием "I LOVE glQiwiApi"
payment = await w.send(
to_account='4100116602400968',
comment='I LOVE glQiwiApi',
amount=2
)
# Опционально, так вы можете проверить транзакцию, поступила ли она человеку на счёт
print(await w.check_transaction(amount=2, comment='I LOVE glQiwiApi', transaction_type='out'))
asyncio.run(main())
Fetch account info
import asyncio
from glQiwiApi import YooMoneyAPI
TOKEN = 'your_token'
async def main():
w = YooMoneyAPI(TOKEN)
# Так вы получаете информацию об аккаунте в виде объекта AccountInfo
account_info = await w.account_info()
print(account_info.account_status)
print(account_info.balance)
asyncio.run(main())
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
glQiwiApi-0.1.9.tar.gz
(32.9 kB
view hashes)