karim007/laravel-bkash

这是 Laravel 的 bKash 支付网关

v2.0.0 2023-05-18 10:18 UTC

This package is auto-updated.

Last update: 2024-09-28 06:48:19 UTC


README

Downloads Starts

功能

这是一个针对 Bkash 的 php/laravel 包装包

要求

  • PHP >=7.4
  • Laravel >= 6

安装

composer require karim007/laravel-bkash

vendor publish (config)

php artisan vendor:publish --provider="Karim007\LaravelBkash\BkashServiceProvider"

发布配置文件后,设置您的凭证。您可以在配置目录中的 bkash.php 文件中看到这些

"sandbox"         => env("BKASH_SANDBOX", true),
"bkash_app_key"     => env("BKASH_APP_KEY", "5nej5keguopj928ekcj3dne8p"),
"bkash_app_secret" => env("BKASH_APP_SECRET", "1honf6u1c56mqcivtc9ffl960slp4v2756jle5925nbooa46ch62"),
"bkash_username"      => env("BKASH_USERNAME", "testdemo"),
"bkash_password"     => env("BKASH_PASSWORD", "test%#de23@msdao"),
"callbackURL"     => env("BKASH_CALLBACK_URL", "http://127.0.0.1:8000"),
'timezone'        => 'Asia/Dhaka', 

设置 .env 配置

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

用法

1. 创建一个控制器

php artisan make:controller BkashPaymentController

2. 您可以覆盖路由(路由必须在认证的 bkash 中,它更倾向于这样做)

Route::group(['middleware' => ['auth']], function () {

    // Payment Routes for bKash
    Route::get('/bkash/payment', [BkashPaymentController::class,'index']);
    Route::post('/bkash/get-token', [BkashPaymentController::class,'getToken'])->name('bkash-get-token');
    Route::post('/bkash/create-payment', [BkashPaymentController::class,'createPayment'])->name('bkash-create-payment');
    Route::post('/bkash/execute-payment', [BkashPaymentController::class,'executePayment'])->name('bkash-execute-payment');
    Route::get('/bkash/query-payment', [BkashPaymentController::class,'queryPayment'])->name('bkash-query-payment');
    Route::post('/bkash/success', [BkashPaymentController::class,'bkashSuccess'])->name('bkash-success');

    // Refund Routes for bKash
    Route::get('/bkash/refund', [BkashPaymentController::class,'refundPage'])->name('bkash-refund');
    Route::post('/bkash/refund', [BkashPaymentController::class,'refund'])->name('bkash-refund');

});

3. 您还可以覆盖方法

#必须在您的控制器中包含

use Karim007\LaravelBkash\Facade\BkashPayment;
use Karim007\LaravelBkash\Facade\BkashRefund;

4. 支付页面

public function index()
{
    return view('bkash::bkash-payment');
}

4. 获取令牌

public function getToken()
{
    session()->put('invoice_amount',100);
    return BkashPayment::getToken();
}

4. 创建支付

public function createPayment(Request $request)
{
    $request['intent'] = 'sale';
    $request['currency'] = 'BDT';
    $request['amount'] = session()->get('invoice_amount') ??100;
    $request['merchantInvoiceNumber'] = rand();
    $request['callbackURL'] = config("bkash.callbackURL");;

    $request_data_json = json_encode($request->all());

    return BkashPayment::cPayment($request_data_json);
}

5. 执行支付

public function executePayment(Request $request)
{
    $paymentID = $request->paymentID;
    return BkashPayment::executePayment($paymentID);
}

6. 查询支付

public function queryPayment(Request $request)
{
    $paymentID = $request->payment_info['payment_id'];
    return BkashPayment::queryPayment($paymentID);
}

7. 成功

public function bkashSuccess(Request $request)
{
    $pay_success = $request->payment_info['transactionStatus'];
    return BkashPayment::bkashSuccess($pay_success);
}

8. 退款页面

public function refundPage()
{
    return BkashRefund::index();
}

9. 退款

public function refund(Request $request)
{
    $this->validate($request, [
        'payment_id' => 'required',
        'amount' => 'required',
        'trx_id' => 'required',
        'sku' => 'required|max:255',
        'reason' => 'required|max:255'
    ]);

    $post_fields = [
        'paymentID' => $request->payment_id,
        'amount' => $request->amount,
        'trxID' => $request->trx_id,
        'sku' => $request->sku,
        'reason' => $request->reason,
    ];
    return BkashRefund::refund($post_fields);
}

必需的 API

  1. 开发者门户(详细产品、工作流程、API 信息):https://developer.bka.sh/docs/checkout-process-overview
  2. 授予令牌: https://developer.bka.sh/v1.2.0-beta/reference#gettokenusingpost
  3. 创建支付: https://developer.bka.sh/v1.2.0-beta/reference#createpaymentusingpost
  4. 执行支付: https://developer.bka.sh/v1.2.0-beta/reference#executepaymentusingpost
  5. 查询支付: https://developer.bka.sh/v1.2.0-beta/reference#querypaymentusingget
  6. 搜索交易详情: https://developer.bka.sh/v1.2.0-beta/reference#searchtransactionusingget

检查演示

  1. 前往 https://merchantdemo.sandbox.bka.sh/frontend/checkout/version/1.2.0-beta
  2. 钱包号码 01770618575
  3. OTP 123456
  4. Pin 12121

欢迎为 Bkash 支付网关包做出贡献。在提交拉取请求之前,请注意以下指南。

  • 遵循 PSR-4 编码标准。
  • 首先阅读 Nagad API 文档。请联系 Nagad 获取他们的 API 文档和沙盒访问权限。

许可证

此存储库受 MIT 许可证 的许可。

版权 2022 md abdul karim。我们与 Nagad 没有联系,也不提供任何保证。