Installation and Usage

Installation

At the command line:

pip install sslcommerz-client

Usage

To use SSLCommerz Client in a project:

from sslcommerz_client import SSLCommerzClient

Initiate Client

To initiate a client:

from sslcommerz_client import SSLCommerzClient

client = SSLCommerzClient(
    store_id="YOUR_STORE_ID",
    store_passwd="YOUR_STORE_PASSWORD",
    sandbox=True // default false
)

Initiate a Session

To Initiate a Session:

post_data = {
    "total_amount": 100,
    "currency": "BDT",
    "tran_id": "221122",
    "product_category": "fashion",
    "success_url": "https://example.com",
    "fail_url": "https://example.com",
    "cancel_url": "https://example.com",
    "cus_name": "Jon Osterman",
    "cus_email": "jon@osterman.com",
    "shipping_method": "NO",
    "num_of_item": 1,
    "product_name": "Fancy Pants",
    "product_category": "Cloth",
    "product_profile": "physical-goods",
    "cus_add1": "Some Address",
    "cus_city": "Dhaka",
    "cus_country": "Bangladesh",
    "cus_phone": "01558221870",
}

response = client.initiateSession(post_data)

response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a PaymentInitResponse. One can use PaymentInitResponse as is or create a dict or json from it. For more, consult pydantic documentation.

Validate IPN

To validate an IPN response:

validation = client.validate_IPN(data) // data: response data as a dict.

validation will be an IPNValidationStatus with validation status as status and the response as IPNResponse.

Getting Order Validation Data

data = {"val_id": "some_val_id"}
validation_response = client.get_order_validation_data(data)

validation_response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a OrderValidationResponse.

Initiate Refund

data = {
    "bank_tran_id": "some_tran_id",
    "refund_amount": "100.00",
    "refund_remarks": "faulty product"
}
refund_response = client.initiate_refund(data)

refund_response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a RefundInitiateResponse.

Get Refund Data

refund_response = client.get_refund_data("refund_ref_id")

refund_response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a RefundResponse.

Get Transaction by Session

transaction_response = client.get_transaction_by_session("sessionkey")

transaction_response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a TransactionBySessionResponse.

Get Transactions by ID

transaction_response = client.get_transaction_by_id("tran_id")

transaction_response will be an APIResponse object with raw_data - the actual response, status_code for convenience, and an response - a TransactionsByIDResponse.