Python SDK for SSLCOMMERZ configurable with Sqlalchemy, PynamoDB or Django ORM.
Install it via pip (python>=3.0).
pip install sslcommerz-sdk
Create the views below depending on framework you are using.
from sslcommerz_sdk.enums import TransactionStatus
# TODO: create payment_handler.py file
from .payment_handler import payment_handler, store
def payment_init_view():
# TODO: Freeze the cart, see what cart freezing is
session, created = payment_handler.get_or_create_session(
store=store,
tran_id="test",
currency="BDT",
total_amount=100,
cus_name="test",
cus_email="test@test.com",
cus_add1="test",
cus_city="test",
cus_postcode="1234",
cus_country="test",
cus_phone="123456",
success_url="<URL to redirect cutomer when transaction is successful>",
fail_url="<URL to redirect cutomer when transaction is failed>",
cancel_url="<URL to redirect cutomer when transaction is cancelled>",
ipn_url="<URL of ipn_view>",
)
# TODO: Redirect customer to session.redirect_url
def ipn_view():
# TODO: Make this URL public, i.e accessible without logging in
# TODO: Disable CSRF protection for this view
# TODO: post_dict = {dict of request POST values}
session, verified_right_now = payment_handler.verify_transaction(
payload=post_dict,
)
if verified_right_now:
if session.status == TransactionStatus.VALID:
print(f"Tran ID: {session.tran_id} successful...")
# TODO: Update order payment status in your database
else:
print("Transaction failed/cancelled!")
# TODO: Unfreeze the cart sothat customer can modify/delete the cart
- Setup Payment Handler with any of the following ORM.
- Setup Store.
- Configure Multiple Stores.
- Customize Store.
- Create Sandbox Account.
- Checkout SSLCOMMERZ api documentation.
- Freeze shopping cart to avoid unexpected errors.
PR should pass the tests and lint commands, checkout the following to get started.
This project is published under MIT LICENSE.