xenon / sslcommerz
Laravel library for SSLCommerz payment gateway
Requires
- php: >=7.2
- ext-curl: *
- ext-json: *
- guzzlehttp/guzzle: ^6.3|>=7.3.0
- laravel/framework: >=5.3.0
- touhidurabir/laravel-stub-generator: dev-master
This package is auto-updated.
Last update: 2024-10-19 10:31:52 UTC
README
This is a fork of uzzal/sslcommerz package for laravel. SSLCommerz Payment gateway library for Laravel framework. Official documentation is here.
install
composer require xenon/sslcommerz
publish
php artisan vendor:publish --provider=Xenon\SslCommerz\SslCommerzServiceProvider
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
IPN_URL=http://your-domain.at/ipn.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', 'mahabub@example.com', '0171xxxxx22'); $resp = Client::initSession($customer, 29); //29 is the amount echo $resp->getGatewayUrl();
or with configuration
$customer = new Customer('Mahabubul Hasan', 'mahabub@example.com', '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 notification 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); }