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_urlOnce payment has been processed, you will be redirected to an intermediate screen where the user can finish ordering. Clicking the “Finish Ordering” button will check the payment status to ensure that the payment was successful and then redirects the user to PESAPAL_TRANSACTION_DEFAULT_REDIRECT_URL.
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 |
PESAPAL_TRANSACTION_MODEL |
‘django_pesapal.Transaction’ |
History
1.3.1 (2019-07-16)
Update dependencies
Support Py37
Remove EOL py34
1.3.0 (2018-09-29)
Support for Django 2.1
Support Py36
1.2.0 (2016-12-11)
Dropped support for Django 1.7
Fixes and Upgrades to support Django 1.8 - 1.10
Use Django’s UUIDField
1.1.0 (2016-05-03)
Support Django 1.9
Update payment_method field length from 16 to 24
Remove support for Py33. Support Py35
1.0.1 (2015-11-21)
Fix querydict bug
1.0.0 (2015-11-11)
Support Django 1.8
Support Py33 and Py34
Return proper IPN response
0.3.4 (2015-08-12)
Restructure flow to better support IPN processing
0.3.3 (2015-06-29)
Setup build had not packaged the templates
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.
Release files for django-pesapal 1.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django-pesapal-1.3.1.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_pesapal-1.3.1-py2.py3-none-any.whl | Python 3, Python 2 | none | any | Details |
Total release size: 29.4 kB
Release files / django-pesapal-1.3.1.tar.gz
| Download URL | django-pesapal-1.3.1.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
3a5ea80371f088f7e6513abbdd9aa936a79539b2653e046cba9cf30a3e7c4c38
|
|
BLAKE2b-256 checksum How to use checksums |
2136067f53e34df469774ad9e3a865105a1ab0ee59409003a413d7f4c57a692c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5
|
Release files / django_pesapal-1.3.1-py2.py3-none-any.whl
| Download URL | django_pesapal-1.3.1-py2.py3-none-any.whl |
|---|---|
| Size | 14.8 kB |
| Tags | Python 2 Python 3 |
|
SHA-256 checksum How to use checksums |
bc2cdf3faf0ddbc493ace5dbd347e35d88c5ee17f2995a00b1055cb50c3809d7
|
|
BLAKE2b-256 checksum How to use checksums |
9de991a61d987842aff8eeef71976f81ae980cc58722648c4f9e4b3af68055e8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/1.12.1 pkginfo/1.4.2 requests/2.22.0 setuptools/40.4.3 requests-toolbelt/0.8.0 tqdm/4.26.0 CPython/3.6.5
|