{"id":36398504,"url":"https://github.com/dgvai/laravel-sslcommerz","last_synced_at":"2026-01-11T16:01:35.492Z","repository":{"id":37908593,"uuid":"255674859","full_name":"dgvai/laravel-sslcommerz","owner":"dgvai","description":"This package is built for SSLCommerz online payment gateway in Bangladesh. Composer package for Laravel for SSLCommerz","archived":false,"fork":false,"pushed_at":"2022-08-25T07:01:48.000Z","size":33,"stargazers_count":24,"open_issues_count":3,"forks_count":12,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-09-28T12:37:40.255Z","etag":null,"topics":["composer-package","laravel-package","laravel-payment-gateway","sslcommerz","sslcommerz-payment-gateway"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dgvai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-04-14T17:16:14.000Z","updated_at":"2025-04-20T14:18:35.000Z","dependencies_parsed_at":"2022-08-18T07:55:30.586Z","dependency_job_id":null,"html_url":"https://github.com/dgvai/laravel-sslcommerz","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/dgvai/laravel-sslcommerz","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgvai%2Flaravel-sslcommerz","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgvai%2Flaravel-sslcommerz/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgvai%2Flaravel-sslcommerz/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgvai%2Flaravel-sslcommerz/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dgvai","download_url":"https://codeload.github.com/dgvai/laravel-sslcommerz/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dgvai%2Flaravel-sslcommerz/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28312080,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-11T14:58:17.114Z","status":"ssl_error","status_checked_at":"2026-01-11T14:55:53.580Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["composer-package","laravel-package","laravel-payment-gateway","sslcommerz","sslcommerz-payment-gateway"],"created_at":"2026-01-11T16:00:39.661Z","updated_at":"2026-01-11T16:01:35.454Z","avatar_url":"https://github.com/dgvai.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# SSLCommerz Payment Gateway Package for Laravel\n\n[![Latest Stable Version](https://poser.pugx.org/dgvai/laravel-sslcommerz/v/stable)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![Total Downloads](https://poser.pugx.org/dgvai/laravel-sslcommerz/downloads)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![Latest Unstable Version](https://poser.pugx.org/dgvai/laravel-sslcommerz/v/unstable)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![License](https://poser.pugx.org/dgvai/laravel-sslcommerz/license)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![Monthly Downloads](https://poser.pugx.org/dgvai/laravel-sslcommerz/d/monthly)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![Daily Downloads](https://poser.pugx.org/dgvai/laravel-sslcommerz/d/daily)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n[![composer.lock](https://poser.pugx.org/dgvai/laravel-sslcommerz/composerlock)](https://packagist.org/packages/dgvai/laravel-sslcommerz)\n\nThis package is built for [SSLCommerz](https://www.sslcommerz.com) online payment gateway in Bangladesh for Laravel 5.5+, 6.x and 7.x. (not tested for lower versions (\u003c 5.5))\n\n## Contents\n\n- [Installation](#installation)\n\t- [Publish Configuration](#publish-configuration)\n\t- [Setup and Configure](#setup-and-configure)\n- [Usage](#usage)\n    - [Make Payment](#make-payment)\n    - [Refund Process](#refund-process)\n    - [Transaction Query](#transaction-query)\n- [Available Methods](#available-methods)\n- [Changelog](#changelog)\n- [License](#license)\n\n## Installation\n\nYou can install the package via composer:\n\n``` bash\n    composer require dgvai/laravel-sslcommerz\n```\n\n### Publish Configuration\n\nPublish configuration file\n\n```bash\n    php artisan vendor:publish --tag=sslc-config\n```\n\n### Setup and configure\n\nUpdate your app environment (.env) \n```\n    SSLC_STORE_ID           =   [YOUR SSLCOMMERZ STORE_ID]\n    SSLC_STORE_PASSWORD     =   [YOUR SSLCOMMERZ STORE_ID]\n    SSLC_STORE_CURRENCY     =   [STORE CURRENCY eg. BDT]\n    SSLC_ROUTE_SUCCESS      =   [route name of success_url, eg: payment.success]\n    SSLC_ROUTE_FAILURE      =   [eg: payment.failure]\n    SSLC_ROUTE_CANCE        =   [eg: payment.cancel]\n    SSLC_ROUTE_IPN          =   [eg: payment.ipn]\n    SSLC_ALLOW_LOCALHOST    =   [TRUE/FALSE]\n```\n**NOTE** SSLC_ROUTE_* variables are route name() not url()\n\nCreate four ``POST`` routes for SSLCommerz\n```php\n    Route::post('sslcommerz/success','PaymentController@success')-\u003ename('payment.success');\n    Route::post('sslcommerz/failure','PaymentController@failure')-\u003ename('failure');\n    Route::post('sslcommerz/cancel','PaymentController@cancel')-\u003ename('cancel');\n    Route::post('sslcommerz/ipn','PaymentController@ipn')-\u003ename('payment.ipn');\n```\n**NOTE** These named routes are being used in .env file\n\nAdd exception in ``app\\Http\\Middleware\\VerifyCsrfToken.php`` \n```php\n    protected $except = [\n        'sslcommerz/*'\n    ];\n```\n**NOTE** This will be the initial group of those four routes\n\nAfter done configuraing\n```bash\n    php artisan config:cache\n```\n\n## Usage\n\n### Make Payment\nNow you can call for payment in you controller method:\n\n``` php\n\nuse DGvai\\SSLCommerz\\SSLCommerz;\nuse App\\Http\\Controllers\\Controller;\n\nclass PaymentController extends Controller\n{\n    public function order()\n    {\n        ...\n        //  DO YOU ORDER SAVING PROCESS TO DB OR ANYTHING\n        ...\n\n        $sslc = new SSLCommerz();\n        $sslc-\u003eamount(20)\n            -\u003etrxid('DEMOTRX123')\n            -\u003eproduct('Demo Product Name')\n            -\u003ecustomer('Customer Name','custemail@email.com');\n        return $sslc-\u003emake_payment();\n\n        /**\n         * \n         *  USE:  $sslc-\u003emake_payment(true) FOR CHECKOUT INTEGRATION\n         * \n         * */\n    }\n\n    public function success(Request $request)\n    {\n        $validate = SSLCommerz::validate_payment($request);\n        if($validate)\n        {\n            $bankID = $request-\u003ebank_tran_id;   //  KEEP THIS bank_tran_id FOR REFUNDING ISSUE\n            ...\n            //  Do the rest database saving works\n            //  take a look at dd($request-\u003eall()) to see what you need\n            ...\n        }\n    }\n\n    public function failure(Request $request)\n    {\n        ...\n        //  do the database works\n        //  also same goes for cancel()\n        //  for IPN() you can leave it untouched or can follow\n        //  official documentation about IPN from SSLCommerz Panel\n        ...\n    }\n}\n```\n**NOTE** This is the minimalist basic need to perform a payment.\n\n### Refund Process\nAlso you can call for Refund Request and check Refund State\n```php\n\n    public function refund($bankID)\n    {\n        /** \n         * SSLCommerz::refund($bank_trans_id, $amount [,$reason])\n         */\n\n        $refund = SSLCommerz::refund($bankID,$refund_amount);\n\n        if($refund-\u003estatus)\n        {\n            /**\n             * States:\n             * success : Refund request is initiated successfully\n             * failed : Refund request is failed to initiate\n             * processing : The refund has been initiated already\n            */\n\n            $state  = $refund-\u003erefund_state;\n\n            /**\n             * RefID will be used for post-refund status checking\n            */\n\n            $refID  = $refund-\u003eref_id;\n\n            /**\n             *  To get all the outputs\n            */\n\n            dd($refund-\u003eoutput);\n        }\n        else \n        {\n            return $refund-\u003emessage;\n        }\n    }\n\n    public function check_refund_status($refID)\n    {\n        $refund = SSLCommerz::query_refund($refID);\n\t\n        if($refund-\u003estatus)\n        {\n            /**\n             * States:\n             * refunded : Refund request has been proceeded successfully\n             * processing : Refund request is under processing\n             * cancelled : Refund request has been proceeded successfully\n            */\n\n            $state  = $refund-\u003erefund_state;\n\n            /**\n             * RefID will be used for post-refund status checking\n            */\n\n            $refID  = $refund-\u003eref_id;\n\n            /**\n             *  To get all the outputs\n            */\n\n            dd($refund-\u003eoutput);\n        }\n        else \n        {\n            return $refund-\u003emessage;\n        }\n    }\n\n```\n### Transaction Query\nAlso you can query for your Transaction based on the Transaction ID you provided.\n\n```php \n\n    public function get_transaction_status($trxID)\n    {\n        $query = SSLCommerz::query_transaction($trxID);\n\t\n        if($query-\u003estatus)\n        {\n            dd($query-\u003eoutput);\n        }\n        else \n        {\n            $query-\u003emessage;\n        }\n    }\n\n```\n\n## Available Methods\n\n###  \u003ckbd\u003erequired\u003c/kbd\u003e ``amount($amount)``\n\nDescription: Set the amount of payment\n\nUsage: ``$sslc-\u003eamount(50)``\n\n### \u003ckbd\u003erequired\u003c/kbd\u003e ``trxid($trxid = null)``\n\nDescription: Set the Transaction ID. If ``null`` passed, php ``uniqid()`` will be used to generate the TrxID\n\nUsage: ``$sslc-\u003etrxid(mt_rand(10000000,999999999))``\n\n### \u003ckbd\u003erequired\u003c/kbd\u003e ``product($name [,$category])`` \n\nDescription: Set the Product Name (required) and Category (optional)\n\nUsage: ``$sslc-\u003eproduct($product-\u003ename, $product-\u003ecategory)``\n\n### \u003ckbd\u003erequired\u003c/kbd\u003e ``customer($name, $email [,$phone, $address, $city, $state, $postal, $country, $fax])`` \n\nDescription: Set the Customer Name and Email (required), Phone,Address,City,State,Postal Code, Country, FAX Code (optional)\n\nUsage: ``$sslc-\u003ecustomer($user-\u003ename, $user-\u003eemail, $user-\u003ephone)``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setUrl($url_array[])`` \n\nDescription: To Manually set the success,failure,cancel and ipn URL not using from .env one\n\nUsage: ``$sslc-\u003esetUrl([route('custome.success'), route('custom.failure'), .. ])``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setCurrency($currency)`` \n\nDescription: To Manually set the currency not using from .env one\n\nUsage: ``$sslc-\u003esetCurrency('USD')``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setBin($bin)`` \n\nDescription: You can provide the BIN of card to allow the transaction must be completed by this BIN. You can declare by coma ',' separate of these BIN. Example: 371598,371599,376947,376948,376949\n\nUsage: ``$sslc-\u003esetBin('371598,371599,376947')``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``enableEMI($installment, $max_installment, bool $restrict_emi_only = false)`` \n\nDescription: This method enables EMI payment. \n\n**installment** = Customer selects from your Site, So no instalment option will be displayed at gateway page\n\n**max_installment** = Max instalment Option, Here customer will get 3,6, 9 instalment at gateway page\n\n**restrict_emi_only** = Value is true/false, if value is true then only EMI transaction is possible, in payment page. No Mobile banking and internet banking channel will not display.\n\nUsage: ``$sslc-\u003eenableEMI(5,12,false)``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setShipping($product_number, $name, $address, $city [,$postal, $state, $country])`` \n\nDescription: This method sets shipping details. Not required usually!\n\nUsage: ``$sslc-\u003esetShipping(5,'productname','24/7 Beijing Street','Dhaka',1234)``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setAirlineTicketProfile($flight_type, $hours_till_departure, $pnr, $journey_from_to, $third_party_booking)`` \n\nDescription: This method is Mandatory, if **product_profile** is *airline-tickets*! Not usually required! See [Official Documentation](https://developer.sslcommerz.com/doc/v4/) for this section.\n\nUsage: ``$sslc-\u003esetAirlineTicketProfile('bus',3,1,'DHK-RAJ',null)``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setTravelVerticalProfile($hotel_name, $length_of_stay, $check_in_time, $hotel_city)`` \n\nDescription: This method is Mandatory, if **product_profile** is *travel-vertical*! Not usually required! See [Official Documentation](https://developer.sslcommerz.com/doc/v4/) for this section.\n\nUsage: ``$sslc-\u003esetTravelVerticalProfile('Dalas',3,'12:00pm',Rajshahi)``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setTelecomVerticleProfile($product_type, $topup_number, $country_topup)`` \n\nDescription: This method is Mandatory, if **product_profile** is *telecom-vertical*! Not usually required! See [Official Documentation](https://developer.sslcommerz.com/doc/v4/) for this section.\n\nUsage: ``$sslc-\u003esetTelecomVerticleProfile('Flexiload',0170000000,'BD')``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setCarts($cart, $product_amount, $vat, $discount_amount, $convenience_fee)`` \n\nDescription: This method is not usually used! See [Official Documentation](https://developer.sslcommerz.com/doc/v4/) for this section.\n\nUsage: ``$sslc-\u003esetCarts($cart_json,5,'3%','20%','500')``\n\n### \u003ckbd\u003eoptional\u003c/kbd\u003e ``setExtras($extra1, $extra2, $extra3, $extra4)`` \n\nDescription: This method is used to pass to the success/failure response as extra parameter, if it is needed. Not mandatory! See [Official Documentation](https://developer.sslcommerz.com/doc/v4/) for this section.\n\nUsage: ``$sslc-\u003esetExtras($my_token)``\n\n###  \u003ckbd\u003erequired\u003c/kbd\u003e ``make_payment($checkout = false)``\n\nDescription: Make the payment. 1. For hosted mode (default), pass nothing/false. 2. For checkout mode, pass the first param ``true``, and it will return JSON\n\nUsage: ``$sslc-\u003emake_payment()``\n\n## Changelog\n\nPlease see [CHANGELOG](CHANGELOG.md) for more information what has changed recently.\n\n## License\n\nThe MIT License (MIT). Please see [License File](LICENSE.md) for more information.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgvai%2Flaravel-sslcommerz","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdgvai%2Flaravel-sslcommerz","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdgvai%2Flaravel-sslcommerz/lists"}