karim007 / laravel-bkash
这是 Laravel 的 bKash 支付网关
v2.0.0
2023-05-18 10:18 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- ext-curl: *
- illuminate/support: ^6|^7|^8|^9|^10
README
功能
这是一个针对 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
- 开发者门户(详细产品、工作流程、API 信息):https://developer.bka.sh/docs/checkout-process-overview
- 授予令牌: https://developer.bka.sh/v1.2.0-beta/reference#gettokenusingpost
- 创建支付: https://developer.bka.sh/v1.2.0-beta/reference#createpaymentusingpost
- 执行支付: https://developer.bka.sh/v1.2.0-beta/reference#executepaymentusingpost
- 查询支付: https://developer.bka.sh/v1.2.0-beta/reference#querypaymentusingget
- 搜索交易详情: https://developer.bka.sh/v1.2.0-beta/reference#searchtransactionusingget
检查演示
- 前往 https://merchantdemo.sandbox.bka.sh/frontend/checkout/version/1.2.0-beta
- 钱包号码 01770618575
- OTP 123456
- Pin 12121
欢迎为 Bkash 支付网关包做出贡献。在提交拉取请求之前,请注意以下指南。
- 遵循 PSR-4 编码标准。
- 首先阅读 Nagad API 文档。请联系 Nagad 获取他们的 API 文档和沙盒访问权限。
许可证
此存储库受 MIT 许可证 的许可。
版权 2022 md abdul karim。我们与 Nagad 没有联系,也不提供任何保证。