Django app for NMB BANK Merchant payment gateway
Project description
django-nmb
A Django application which assist on integration of your web application with NMB BANK Merchant payment gateway with easy step. docs
Prerequisites
- Python 3.6+
- Pip or Pipenv
It will Cover
- Generate sessionID to initiate payment
- Cover Hosted Checkout and Hosted Session on "example" module found on github here
- Direct payment
- Batch payment
Installation
This package is available in Python Package Index and can be installed using pip
or pipenv
- Run
pip install django-nmb
- Add
nmb
toINSTALLED_APPS
- Run
pip install requests
Usage
Register account on NMB Ecommerce merchant by visit on NMB Branch near you and your will get the following credentials for testing
- MERCHANT ID
- MERCHANT API PASSWORD
Open "settings.py" on your project, set the following variables
- MERCHANT_ID = "your merchant id"
- API_USERNAME = "merchant.merchant_id"
- API_PASSWORD = "your api password"
- API_ADDRESS = "https://test-nmbbank.mtf.gateway.mastercard.com/api/rest/version/60/merchant/{merchant_id}/session"
After setting above,Then on your views.py file.
from django.conf import settings
from nmb.payment import APIContext, APIMethodType, APIRequest
def get_sessionID(request):
merchant_id = settings.MERCHANT_ID
api_password = settings.API_PASSWORD
api_username = settings.API_USERNAME
address = settings.API_ADDRESS
# Create Context with API to request a Session ID
api_context = APIContext()
# API USERNAME
api_context.api_username = api_username
# API Password
api_context.api_password = api_password
# API address
api_context.address = address
# Method type (can be GET/POST)
api_context.method_type = APIMethodType.POST
# Define your purchaces parameters
parameters = {
'apiOperation': 'CREATE_CHECKOUT_SESSION',
'interaction': {
'operation':'PURCHASE',
},
'order': {
'id': "2",
'amount': 100.0,
'currency': 'TZS',
'reference': '99676542',
'description': 'A pair of shoes'
}
}
# add parameters on request session
api_context.parameters = parameters
#Do the API call and put result in a response packet
api_request = APIRequest(api_context)
result = None
try:
result = api_request.execute()
except Exception as e:
print('Call Failed:', e)
if result is None:
raise Exception('Call failed to get result. Please check.')
print(result.headers)
print(result.body)
return JsonResponse(data=result.body, safe=False)
sample response
{"merchant": "993755100084", "result": "SUCCESS", "session": {"id": "SESSION0002323910607J44443070E2", "updateStatus": "SUCCESS", "version": "f7f4198201"}, "successIndicator": "6d7323cd979444f2"}
For full example on how to integrate please visit the github repo on example folder you will find all source codes here
Give it a star
If you found this repository useful, give it a star so as the whole community of Tanzania developers can get to know it.
Bug bounty?
If you encounter issue with the usage of the package, feel free raise an issue so as we can fix it as soon as possible(ASAP).
Pull Requests
If you have something to add I welcome pull requests on improvement , you're helpful contribution will be merged as soon as possible
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
Built Distribution
Hashes for django_nmb-0.0.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2440e117c09dbcf0544ebd88611c86a8db11c7c68a93528c2876b1003eec80d7 |
|
MD5 | 7556b671bba951fbc3a18314cf8410e9 |
|
BLAKE2b-256 | 984c4a513c5d6167bd94d07c39cd746be16c87e6e5d529113aaf557b669728ac |