Skip to main content

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

  1. Run pip install django-nmb
  2. Add nmb to INSTALLED_APPS
  3. 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

  1. MERCHANT ID
  2. MERCHANT API PASSWORD

Open "settings.py" on your project, set the following variables

  1. MERCHANT_ID = "your merchant id"
  2. API_USERNAME = "merchant.merchant_id"
  3. API_PASSWORD = "your api password"
  4. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-nmb-0.0.1.tar.gz (7.3 kB view hashes)

Uploaded Source

Built Distribution

django_nmb-0.0.1-py3-none-any.whl (10.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page