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
Metadata
Release files for iSwitch 1.0.7
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| iSwitch-1.0.7.tar.gz | 11.4 kB | Details |
Release files / iSwitch-1.0.7.tar.gz
| Download URL | iSwitch-1.0.7.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ffae5f5f9a44aca38a72ad42afc5f832e244a97ce197f1e9f66a02481c027bb7
|
|
BLAKE2b-256 checksum How to use checksums |
c00de13f7dd669f7270bc6d876394016a1a5572df1d7c6dd7a209eeb1b1bbd3b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.0.0 CPython/3.11.1
|