LaravelPackages.net
Acme Inc.
Toggle sidebar
uzzal/sslcommerz

Laravel library for SSLCommerz payment gateway

629
12
v1.0.0
About uzzal/sslcommerz

uzzal/sslcommerz is a Laravel package for laravel library for sslcommerz payment gateway. It currently has 12 GitHub stars and 629 downloads on Packagist (latest version v1.0.0). Install it with composer require uzzal/sslcommerz. Discover more Laravel packages by uzzal or browse all Laravel packages to compare alternatives.

Last updated

SSLCommerz

SSLCommerz Payment gateway library for Laravel framework. Official documentation is here.

install

composer require uzzal/sslcommerz

publish

artisan vendor:publish

This command will create a sslcommerz.php file inside the config directory. Configure your parameters in your .env file

#sslcommerz
STORE_ID=your_store_id
STORE_PASSWORD=your_store_password
SUCCESS_URL=http://your-domain.at/success.php
FAIL_URL=http://your-domain.at/fail.php
CANCEL_URL=http://your-domain.at/cancel.php
SANDBOX_MODE=true

Initiating a Payment session

This initSession will give you a gateway url. With this url you will be able to continue the payment through sslcommerz.

$customer = new Customer('Mahabubul Hasan', '[email protected]', '0171xxxxx22');
$resp = Client::initSession($customer, 29); //29 is the amount
echo $resp->getGatewayUrl();

or with configuration

$customer = new Customer('Mahabubul Hasan', '[email protected]', '0171xxxxx22');
$config[SessionRequest::EMI] = '0';
$resp = Client::initSession($customer, 29, $config);
echo $resp->getGatewayUrl();

Request for Validation

This verifyOrder method takes a val_id as parameter which you will get in the IPN request.

$resp = Client::verifyOrder('180828114058np43AJdzJJOsYzc');
echo 'status: '.$resp->getStatus();
echo 'transaction: '.$resp->getTransactionId();

IPN Listener (Step 4,5)

After filling the card information and submission in the sslcommerz window it will send a IPN notificaion to your specified IPN url. To grab the notification use the following code. For more details see here

if(ipn_hash_varify(config('sslcommerz.store_password'))){
    $ipn = new IpnNotification($_POST);
    $val_id = $ipn->getValId();
    $transaction_id = $ipn->getTransactionId();
    $amount = $ipn->getAmount();
    $resp = Client::verifyOrder($val_id);
} 

SSLCommerz process flow

alt text

Comments