SwitchPay Python SDK for AllDotPy internal use.
Project description
iSwitch😎 Python Library
SwitchPay Python SDK for AllDotPy internal use.
Prerequisites
You need to have at least 3.9 version of python to be able to continue. To do this:
Next you can go ahead with iSwitch.
Install
pip install iswitch
API
The iSwitch Python library's API is designed around the SWITCHPAY REST API
Settings
from iswitch import Client
# Creating a client
client = Client(
configs = {
'host':'', # Your API Host or localhost:9000 by Default
'service': 'SEMOA', # The Provider Service to use
'raise_on_error': False, # If True, client will raise on request errors
'credentials':{
'username':'YOUR-APP-USERNAME',
'password':'YOUR-APP-PASSWORD',
}
}
)
Authentication
response = client.authenticate()
if not response.has_error:
print(type(response)) # <class 'iswitch._types.Response'>
data = response.json
...
else :
print(type(response)) # <class 'iswitch._types.ErrorResponse'>
List Providers
response = client.list_providers()
List Transactions
response = client.list_transactions()
Create Order
# Creating order for SEMOA Transaction.
semoa_order = {
'merchant_reference': 'USD-marchant',
'transaction_id': '123456',
'client': {
'last_name': 'Doe',
'first_name': 'John',
'phone': '123456789',
}
}
# Creating order for CINETPAY Transaction.
cinetpay_order = {
'transaction_id': '123456',
'currency': 'XOF',
'description': 'YOUR-ORDER-DESCRIPTION',
'customer_name': 'Doe',
'customer_surname': 'John',
}
Create Transaction
from iSwitch import Client, Transaction
# Initializing Client
client = Client(
configs = {
'host':'',
'service': 'CINETPAY',
'raise_on_error': False,
'credentials':{
'username':'YOUR-APP-USERNAME',
'password':'WRONG-PASSWORD',
}
}
)
# Creating Transaction
transaction = Transaction(
amount = 250,
callback_url = 'YOUR-CALLBACK-URL',
return_url='YOUR-RETURN/REDIRECT-URL',
order = cinetpay_order
)
response = client.create_transaction(transaction)
print(type(response)) # <Class Response status: 201 error: False>
Responses
-
Response class
The default Request response class, is returned when detail is set to True in the request.
response = client.create_transaction(my_transaction)
print(response) # <Class Response status: 201, error: False>
# Use json attribute to access response data.
print(response.json) # {"id":transaction_id,...}
-
PagginatedResponse Class
PagginatedResponse is used to manage Pagginated response data. It provides properties such as :
has_next: bool ,Trueif the PagginatedResponse has a next page elseFalse.has_prev: bool,Trueif the PagginatedResponse has a next page elseFalsenext_page: PagginatedResponse, the next page ifhas_nextisTrueprevious_page: PagginatedResponse, the next page ifhas_previsTrueresult: sequence[ Mapping[ str,any ] ], the page data.
Errors
Errors are raised if requests return an error status.
-
ErrorResponse class
This Error is returned if raise_on_error is set to True in Client configs.
from iSwitch import Client
client = Client(
configs = {
'host':'',
'service': 'SEMOA',
'raise_on_error': False,
'credentials':{
'username':'YOUR-APP-USERNAME',
'password':'WRONG-PASSWORD',
}
}
)
# Do Authentication
response = Client.authenticate()
# With raise_on_error set to False
print(type(response)) # <class 'iswitch._types.ErrorResponse'>
print(response.get_message()) # Invalid password.
-
ResponseError class
This Error is raised if raise_on_error is set to True in Client configs.
from iSwitch import Client
client = Client(
configs = {
'host':'',
'service': 'SEMOA',
'raise_on_error': True,
'credentials':{
'username':'YOUR-APP-USERNAME',
'password':'WRONG-PASSWORD',
}
}
)
# Do Authentication
response = Client.authenticate() # Will raise a ResponseError with response message.
Made with ❤️ By DotPy
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
File details
Details for the file iSwitch-1.0.3.tar.gz.
File metadata
- Download URL: iSwitch-1.0.3.tar.gz
- Upload date:
- Size: 10.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0912a7e80690d8e6198fdc832b5c49de75b34e6f8b29a90f3cb454aef0b0648a
|
|
| MD5 |
129395bbd40bff6c895865bb74133b20
|
|
| BLAKE2b-256 |
c1ecd52f1db907f606316837abcf350161123cf8ffabbe6643bb3ef044ed6cad
|