Non official, but friendly QvaPay library for the Python language.
You can install this package by using the pip tool and installing:
pip install qvapayOr
easy_install qvapayCreate your account to process payments through QvaPay at qvapay.com/register.
First, import the AsyncQvaPayClient (or SyncQvaPayClient) class and create your QvaPay asynchronous (or synchronous) client using your app credentials.
from qvapay.v1 import AsyncQvaPayClient
client = AsyncQvaPayClient(app_id, app_secret)It is also possible to use the QvaPayAuth class (which by default obtains its properties from environment variables or from the content of the .env file) and the static method AsyncQvaPayClient.from_auth (or SyncQvaPayClient.from_auth) to initialize the client.
from qvapay.v1 import AsyncQvaPayClient, QvaPayAuth
client = AsyncQvaPayClient.from_auth(QvaPayAuth())The recommended way to use a client is as a context manager. For example:
async with AsyncQvaPayClient(...) as client:
# Do anything you want
...or
with SyncQvaPayClient(...) as client:
# Do anything you want
...# Use await when using AsyncQvaPayClient
# With SyncQvaPayClient it is not necessary.
info = await client.get_info()# Use await when using AsyncQvaPayClient
# With SyncQvaPayClient it is not necessary.
balance = await client.get_balance()# Use await when using AsyncQvaPayClient
# With SyncQvaPayClient it is not necessary.
transaction = await client.create_invoice(
amount=10,
description='Ebook',
remote_id='EE-BOOk-123' # example remote invoice id
)# Use await when using AsyncQvaPayClient
# With SyncQvaPayClient it is not necessary.
transaction = await client.get_transaction(id)# Use await when using AsyncQvaPayClient
# With SyncQvaPayClient it is not necessary.
transactions = await client.get_transactions(page=1)You can also read the QvaPay API documentation: qvapay.com/docs.
The _sync folders were generated automatically executing the command unasync qvapay tests.
The code that is added in the _async folders is automatically transformed.
So every time to make a change you must run the command unasync qvapay tests to regenerate the folders _sync with the synchronous version of the implementation.
Improve tests implementation and add pre-commit system to ensure format and style.
QvaPayClientwas divided into two classes:AsyncQvaPayClientandSyncQvaPayClient. Both classes have the same methods and properties, with the difference that the methods inAsyncQvaPayClientare asynchronous and inSyncQvaPayClientare synchronous.
user_idofTransactionmodel was removedpaid_by_user_idofTransactionmodel was removed
from qvapay.v1 import *instead offrom qvapay import *QvaPayClientinstead ofClientclient.get_infoinstead ofclient.infoclient.get_balanceinstead ofclient.balanceclient.get_transactionsinstead ofclient.transactions
Thanks goes to these wonderful people (emoji key):
Carlos Lugones 💻 |
Ozkar L. Garcell 💻 |
Leynier Gutiérrez González 💻 |
Jorge Alejandro Jimenez Luna 💻 |
Reinier Hernández 🐛 |
This project follows the all-contributors specification. Contributions of any kind welcome!
