A Django application which assist on integration of your web application with NMB BANK Merchant payment gateway with easy step. docs
- Python 3.6+
- Pip or Pipenv
- Generate sessionID to initiate payment
- Cover Hosted Checkout and Hosted Session on "example" module found on github here
- Direct payment
- Batch payment
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
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
- 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"
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)
{"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
If you found this repository useful, give it a star so as the whole community of Tanzania developers can get to know it.
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).
If you have something to add I welcome pull requests on improvement , you're helpful contribution will be merged as soon as possible