quickpay-python-client is a official python client for QuickPay API. Quickpay API enables you to accept payments in a secure and reliable manner. This library currently supports QuickPay v10 api.
Add to your requirements.txt
quickpay-api-client
or install via pip:
$ pip install quickpay-api-client
It is currently tested with Python >= 2.7.9 and Python >= 3.4.
Before doing anything you should register yourself with QuickPay and get access credentials. If you haven't please click here to apply.
First you should create a client instance that is anonymous or authorized with api_key or login credentials provided by QuickPay.
To initialise an anonymous client:
from quickpay_api_client import QPClient
client = QPClient()
To initialise a client with QuickPay Api Key:
from quickpay_api_client import QPClient
secret = ":{0}".format(os.environ['QUICKPAY_API_KEY'])
client = QPClient(secret)
Or you can provide login credentials like:
from quickpay_api_client import QPClient
secret= "{0}:{1}".format(os.environ['QUICKPAY_LOGIN'], os.environ['QUICKPAY_PASSWORD'])
client = QPClient(secret)
You can afterwards call any method described in QuickPay api with corresponding http method and endpoint. These methods are supported currently: get, post, put, patch and delete.
for activity in client.get('/activities'):
print activity['id']
If you want raw http response, headers Please add raw=True parameter:
status, body, headers = client.get("/activities", raw=True)
if status == 200:
for activity in json.loads(body): ## note: import json
print activity['id']
else:
print "Error", body
Beyond the endpoint, the client accepts the following options (default values shown):
body: ""( valid for POST, PATCH and PUT)headers: {}query: {}raw: false
response = client.post("/payments/1/capture",
body={ 'amount': 100 },
query={ "synchronized" : "" },
raw=False
)By default (get|post|patch|put|delete) will return JSON parsed body on success (i.e. 2xx response code) otherwise it will raise ApiError. Your code should handle the errors appropriately.
You can listen for any api error like:
from quickpay_api_client.exceptions import ApiError
try:
client.post('/payments', body={'currency': 'DKK', 'order_id': '1212'})
...
except ApiError as e:
print e.body
print e.status_code
You can read more about api responses at http://tech.quickpay.net/api/.