msilabs / bkash
bKash Payment Gateway API for Laravel Framework.
Installs: 211
Dependents: 0
Suggesters: 0
Security: 0
Stars: 16
Watchers: 0
Forks: 6
Open Issues: 0
pkg:composer/msilabs/bkash
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^8.3
- illuminate/support: ^6|^7|^8|^9|^10|^11|^12
README
msilas/bkash
bKash Payment Gateway API for Laravel Framework.
Requirements
- PHP >= 7.4
- Laravel >= 6
Get Started
Install msilabs/bkash via the Composer package manager:
composer require msilabs/bkash
Optionally, publish the configuration file
php artisan vendor:publish --provider="Msilabs\Bkash\BkashServiceProvider"
Set up the environment configuration in your .env file:
BKASH_SANDBOX=true #for production use false BKASH_APP_KEY="" BKASH_APP_SECRET="" BKASH_USERNAME="" BKASH_PASSWORD=""
Sandbox validation
Start local server.
php artisan serve
To validate create-payment visit /bkash-sandbox-validation/create-payment url
http://127.0.0.1:8000/bkash-sandbox-validation/create-payment
To validate execute-payment visit /bkash-sandbox-validation/execute-payment url
http://127.0.0.1:8000/bkash-sandbox-validation/execute-payment
for multiple account see this: Multiple Account
Usage
Include the BkashPayment trait in your controller:
use Msilabs\Bkash\BkashPayment;
class BkashController extends Controller
{
  use BkashPayment;
  //
}
create payment
public function payment()
{
  // your code 
  $response = $this->createPayment($amount, $invoice_id, $callback_url);
  return redirect($response->bkashURL);
}
execute payment
public function callback(Request $request)
{
  $payment_id = $request->paymentID;
  $status = $request->status;
  if($paymentID && $status == 'success') {
      $response = $this->executePayment($paymentID);
      if($response->transactionStatus == 'Completed') {
          $order_id = $response['merchantInvoiceNumber'];
          $trxID = $response['trxID'];
          // your code
      }
  }
  // your code
}
Production Use
Set live credentials in your .env file:
BKASH_SANDBOX=false BKASH_APP_KEY="" BKASH_APP_SECRET="" BKASH_USERNAME="" BKASH_PASSWORD=""
Multiple Account
Add multiple accounts in the config/bkash.php file. For example, to add secondary account:
"accounts" => [ "primary" => [ "sandbox" => env("BKASH_SANDBOX", true), #for production use false "app_key" => env("BKASH_APP_KEY"), "app_secret" => env("BKASH_APP_SECRET"), "username" => env("BKASH_USERNAME"), "password" => env("BKASH_PASSWORD"), ], "secondary" => [ "sandbox" => env("BKASH_SECONDARY_SANDBOX", true), #for production use false "app_key" => env("BKASH_SECONDARY_APP_KEY"), "app_secret" => env("BKASH_SECONDARY_APP_SECRET"), "username" => env("BKASH_SECONDARY_USERNAME"), "password" => env("BKASH_SECONDARY_PASSWORD"), ], // Add more stores if you need ],
Set multiple credentials in your .env file:
BKASH_SANDBOX=false BKASH_APP_KEY="" BKASH_APP_SECRET="" BKASH_USERNAME="" BKASH_PASSWORD="" BKASH_SECONDARY_SANDBOX=false BKASH_SECONDARY_APP_KEY="" BKASH_SECONDARY_USERNAME="" BKASH_SECONDARY_USERNAME="" BKASH_SECONDARY_PASSWORD=""
Multiple Sandbox validation : example
To validate create-payment for secondary account, visit the following URL:
http://127.0.0.1:8000/bkash-sandbox-validation/create-payment/secondary
To validate execute-payment for secondary account, visit the following URL:
http://127.0.0.1:8000/bkash-sandbox-validation/execute-payment/secondary