iSwitch😎 Python Library
SwitchPay Python SDK for AllDotPy internal use.
Currently Supported Providers
Next
We will add progressively support for following Providers:
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'>
Get active application
app = client.get_application()
Providres
Get Provider
provider = client.get_provider()
List Providers
response = client.list_providers()
Transactions
Create Order
# Creating order for SEMOA Transaction.
semoa_order = {
'merchant_reference': '13fx5er5v7',
'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>
List Transactions
To list transactions you can use list_transactions function.
response = client.list_transactions()
Retrieve Transaction
To get a specific transaction you can use the get_transaction function.
response = client.get_transaction(transaction_id)
Get a Specific Transaction payment url
You can also get a payment URL for a specific Transaction using get_bill_url function.
response = client.get_bill_url(transaction_id)
Responses
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 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.
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.
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
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.7.tar.gz.
File metadata
- Download URL: iSwitch-1.0.7.tar.gz
- Upload date:
- Size: 11.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/5.0.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ffae5f5f9a44aca38a72ad42afc5f832e244a97ce197f1e9f66a02481c027bb7
|
|
| MD5 |
17f2b50e4e5e94a1d0004a1993efe0ac
|
|
| BLAKE2b-256 |
c00de13f7dd669f7270bc6d876394016a1a5572df1d7c6dd7a209eeb1b1bbd3b
|