A Django utility for eSewa signature generation.
Project description
Django-esewa
A simple, developer-friendly package for integrating the eSewa Payment Gateway into Django applications.
Overview
django-esewa
was developed by Nischal Lamichhane to simplify eSewa integration for Python/Django developers. It aims to handle common payment gateway tasks like generating HMAC signatures, verifying transactions, and status checks (in future versions).
Features
- HMAC Key Generation: Easily generate the signature required for eSewa requests.
- Customization: Configure secret keys, product codes, success URLs, and failure URLs.
Future Goals
- Transaction status verification.
- Improved documentation for all class methods.
QuickStart
pip install django-esewa
Note: Ensure you have added necessary settings like ESEWA_SECRET_KEY
, ESEWA_SUCCESS_URL
, and ESEWA_FAILURE_URL
in your settings.py
.
Even though you can use the generate_signature
function without creating an object of EsewaPayment
, if you want to use other features, you need to add ESEWA_SUCCESS_URL
, ESEWA_FAILURE_URL
(will fallback to localhost:8000/success/
& localhost:8000/failure/
) & ESEWA_SECRET_KEY
(will fall back to '8gBm/:&EnhH.1/q'
).
ESEWA_SUCCESS_URL = "localhost:8000/success/"
ESEWA_FAILURE_URL = "localhost:8000/failure/"
ESEWA_SECRET_KEY = "<Custom_key_from_Esewa>"
Usage
Generating a Signature
The generate_signature
function helps create the HMAC signature required by eSewa for secure transactions.
Function Signature:
def generate_signature(
total_amount: float,
transaction_uuid: str,
key: str = "8gBm/:&EnhH.1/q",
product_code: str = "EPAYTEST"
) -> str:
Example:
from esewa import generate_signature
# During Development
signature = generate_signature(1000, "123abc")
# In Production
signature = generate_signature(1000, "123abc", "<your_private_key>", "<product_code>")
Using the EsewaPayment Class
EsewaPayment
provides additional configuration options for success and failure URLs.
List of all methods in EsewaPayment:
__init__()
create_signature()
generate_payload()
get_status()
is_completed()
verify_signature()
log_transaction()
__eq__()
List of In-development methods:
generate_redirect_url()
refund_payment()
simulate_payment()
Initialization:
from esewa import EsewaPayment
payment = EsewaPayment(
product_code="EPAYTEST",
success_url="http://yourdomain.com/success/",
failure_url="http://yourdomain.com/failure/",
secret_key="your_secret_key"
)
Settings
To use custom configurations, add the following keys to your settings.py
:
# settings.py
ESEWA_SECRET_KEY = "your_secret_key"
ESEWA_SUCCESS_URL = "http://yourdomain.com/success/"
ESEWA_FAILURE_URL = "http://yourdomain.com/failure/"
If these settings are missing, the package will use the following defaults:
ESEWA_SECRET_KEY
:"8gBm/:&EnhH.1/q"
ESEWA_SUCCESS_URL
:"http://localhost:8000/success/"
ESEWA_FAILURE_URL
:"http://localhost:8000/failure/"
Contributing
Current To-Do List
- Add
is_success()
method for transaction status verification. - Write documentation for all methods in the
EsewaPayment
class.
How to Contribute
- Fork this repository.
- Create a feature branch.
- Commit your changes with clear messages.
- Submit a pull request (PR) with a detailed description of your changes.
Credits
django-esewa
is maintained by Nischal Lamichhane. This package was created as a last-ditch effort to help Python/Django developers integrate eSewa Payment Gateway efficiently.
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
File details
Details for the file django_esewa-1.0.1.tar.gz
.
File metadata
- Download URL: django_esewa-1.0.1.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2ccde399131c7da24e4c61b5e2030fc6be4837170fc9553f59c9387643728d1 |
|
MD5 | f13408e33757adea33cfb3578b15654a |
|
BLAKE2b-256 | 86261f121d5cbc742b5724da1e45aca2bc305f764072843de052b3eac29c4447 |
File details
Details for the file django_esewa-1.0.1-py3-none-any.whl
.
File metadata
- Download URL: django_esewa-1.0.1-py3-none-any.whl
- Upload date:
- Size: 8.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f6ac18371e718203ac4c84cbbdae31ea325b05e3122202781015468f7f6fbdf0 |
|
MD5 | e03dfe2910ab8329b2500838c7d2d4ce |
|
BLAKE2b-256 | df19d510baa0db5816413f87d37928d7cfb48dfed864c67d567cd80bdf8e7e05 |