A django port of pesapal payment gateway
Project description
A django port of pesapal payment gateway
Documentation
The full documentation is at https://django-pesapal.readthedocs.org.
Quickstart
Install django-pesapal:
pip install django-pesapal
Then use it in a project:
import django_pesapal
Add django_pesapal to your INSTALLED_APPS setting like this:
INSTALLED_APPS = ( ... 'django_pesapal', )
Include the django_pesapal URLconf in your project urls.py like this:
url(r'^payments/', include('django_pesapal.urls')),
You can set your own return url by adding this to settings.py:
PESAPAL_TRANSACTION_DEFAULT_REDIRECT_URL = 'app_name:url_name' # this needs to be a reversible
Run python manage.py migrate to create the models.
Create a method that receives payment details and returns the pesapal iframe url:
from django_pesapal.views import PaymentRequestMixin class PaymentView(PaymentRequestMixin): def get_pesapal_payment_iframe(self): ''' Authenticates with pesapal to get the payment iframe src ''' order_info = { 'first_name': 'Some', 'last_name': 'User', 'amount': 100, 'description': 'Payment for X', 'reference': 2, # some object id 'email': 'user@example.com', } iframe_src_url = self.get_payment_url(**order_info) return iframe_src_url
# Once payment has been processed, you will be redirected to an intermediate screen where the user can check the payment status to ensure that the payment was successful.
NB: get_payment_url is defined as:
def get_payment_url(self, **kwargs): ''' Use the computed order information to generate a url for the Pesapal iframe. Params should include the following keys: Required params: `amount`, `description`, `reference`, `email` Optional params: `first_name`, `last_name` '''
#. PaymentRequestMixin also defins get_payment_status, which can be used check the payment status. The intermediate screen has a button for checking the payment status. Clicking on the button automatically checks the current status on the server and then notifies the user.
Configuration
Setting |
Default Value |
---|---|
PESAPAL_DEMO |
True |
PESAPAL_CONSUMER_KEY |
‘’ |
PESAPAL_CONSUMER_SECRET |
‘’ |
PESAPAL_IFRAME_LINK (if PESAPAL_DEMO=True) |
|
PESAPAL_IFRAME_LINK (if PESAPAL_DEMO=False) |
|
PESAPAL_QUERY_STATUS_LINK (Demo Mode=True) |
|
PESAPAL_QUERY_STATUS_LINK (Demo Mode=False) |
|
PESAPAL_OAUTH_CALLBACK_URL |
‘transaction_completed’ |
PESAPAL_OAUTH_SIGNATURE_METHOD |
‘SignatureMethod_HMAC_SHA1’ |
PESAPAL_TRANSACTION_DEFAULT_REDIRECT_URL |
‘’ |
PESAPAL_TRANSACTION_FAILED_REDIRECT_URL |
‘’ |
PESAPAL_REDIRECT_WITH_REFERENCE |
True |
History
0.3.2 (2015-06-13)
Fix documentation formatting issues
0.3.1 (2015-06-13)
Allow specifying own transaction model
Pass all transaction info when redirecting
Update intermediate template
0.3 (2015-06-12)
Introduce intermediate payment processing screen
Update Django version to 1.7+
Add support to receive and process IPN
Save all details about the transaction and status
0.2.1 (2015-04-03)
Added test sandbox
Updated Django version
Updated django-uuidfield
0.2 (2015-03-17)
Support anonymous checkouts
Add support for getting payment status
Major structural refactoring. Use mixins
Use Mixins and XML Builder
0.1.5 (2014-09-25)
Pin dependencies to specific versions
Update how imports should be done
Remove imports from __init__.py
0.1.4 (2014-09-23)
Fix import bug. Tests for projects using this fail in Shippable
Set max Django version to 1.7
0.1.3 (2014-07-18)
Packaging for PyPi
0.1.2 (2014-06-30)
Fix import bug in urls.py
Fix how callback url is constructed
Fix: Live URL uses https
0.1.1 (2014-06-30)
Refactor handling of redirect urls. Model validation of transaction and merchant reference
Rename settings to conf. Set default oauth redirect url
Add django-uuidfield to dependencies
0.1.0 (2014-06-30)
First release on PyPI.
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_pesapal-0.3.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b92813b557ca5171072ba5c32fcc52491d0cca81eb1c760c0cc184380c99cf1a |
|
MD5 | 8ebc92812e107bce75671da6d388098b |
|
BLAKE2b-256 | 30d2a86c10c82ef577cd69e78e73611987c415aa52e5bac4aadaee4995b0d522 |