msilabs/bkash

bKash Payment Gateway API for Laravel Framework。

v2.0.5 2024-09-01 12:02 UTC

This package is auto-updated.

Last update: 2024-10-01 12:17:50 UTC


README

Total Downloads Latest Stable Version License Github Stars

msilas/bkash

bKash Payment Gateway API for Laravel Framework。

需求

  • PHP >= 7.4
  • Laravel >= 6

入门

通过Composer包管理器安装 msilabs/bkash

composer require msilabs/bkash

可选:发布配置文件

php artisan vendor:publish --provider="Msilabs\Bkash\BkashServiceProvider"

在您的 .env 文件中设置环境配置

BKASH_SANDBOX=true  #for production use false
BKASH_APP_KEY=""
BKASH_APP_SECRET=""
BKASH_USERNAME=""
BKASH_PASSWORD=""

沙盒验证

启动本地服务器。

php artisan serve

要验证创建支付,请访问 /bkash-sandbox-validation/create-payment URL

http://127.0.0.1:8000/bkash-sandbox-validation/create-payment

要验证执行支付,请访问 /bkash-sandbox-validation/execute-payment URL

http://127.0.0.1:8000/bkash-sandbox-validation/execute-payment

对于多个账户,请参阅以下内容:多个账户

用法

将 BkashPayment trait 包含到您的控制器中

use Msilabs\Bkash\BkashPayment;

class BkashController extends Controller
{
  use BkashPayment;

  //
}

创建支付

public function payment()
{
  // your code 

  $response = $this->createPayment($amount, $invoice_id, $callback_url);

  return redirect($response->bkashURL);
}

执行支付

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
}

生产使用

在您的 .env 文件中设置实时凭证

BKASH_SANDBOX=false
BKASH_APP_KEY=""
BKASH_APP_SECRET=""
BKASH_USERNAME=""
BKASH_PASSWORD=""

多个账户

config/bkash.php 文件中添加多个账户。例如,要添加 secondary 账户

"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
],

在您的 .env 文件中设置多个凭证

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=""

多个沙盒验证示例

要验证 create-paymentsecondary 账户,请访问以下 URL

http://127.0.0.1:8000/bkash-sandbox-validation/create-payment/secondary

要验证 execute-paymentsecondary 账户,请访问以下 URL

http://127.0.0.1:8000/bkash-sandbox-validation/execute-payment/secondary