siddiquinoor / nagad-in-laravel
Nagad支付网关插件用于Laravel
dev-main
2023-03-10 20:36 UTC
Requires
- php: ^7.4|^8.0|^8.1
- illuminate/support: ~6|~7|~8|~9|~10
This package is auto-updated.
Last update: 2023-03-10 20:36:44 UTC
README
Nagad是孟加拉国的移动金融服务之一。本包是为Laravel 6.x、7.x和8.x+版本的Nagad支付网关而构建的。
内容
安装
使用composer安装包
composer require siddiquinoor/nagad-in-laravel:dev-master
配置
在您的config
目录中添加配置文件
php artisan vendor:publish --tag=nagad-config
-
这将发布并配置您的应用程序的
config_path()
中的配置文件。例如:config/nagad.php
-
配置Nagad商户账户。使用
sandbox = true
进行开发阶段。 -
确保将您应用程序的时区设置为
Asia/Dhaka
,以便与Nagad支付网关一起工作。为此:转到config/app.php
并设置'timezone' => 'Asia/Dhaka'
使用方法
设置Nagad回调到我们的路由
// in routes/web.php Route::get('/nagad/callback', 'NagadController@callback')->name('nagad.callback');
在nagad配置文件中命名该路由。
//in config/nagad.php
'callback' => 'nagad.callback' // or use env variable to store
环境设置
NAGAD_METHOD=sandbox NAGAD_MERHCANT_ID=YOUR_MERCHANTID NAGAD_MERHCANT_PHONE=YOUR_PHONE_NUMBER NAGAD_KEY_PUBLIC=YOUR_PUBLIC_KEY NAGAD_KEY_PRIVATE=YOUR_PRIVATE_KEY NAGAD_CALLBACK_URL=nagad.callback
要开始支付,在您的NagadController中
use NagadLaravel\Nagad; use Illuminate\Http\Request; public function createPayment() { /** * Method 1: Quickest * This will automatically redirect you to the Nagad PG Page * */ return Nagad::setOrderID('ORDERID123') ->setAmount('540') ->checkout() ->redirect(); /** * Method 2: Manual Redirection * This will return only the redirect URL and manually redirect to the url * */ $url = Nagad::setOrderID('ORDERID123') ->setAmount('540') ->checkout() ->getRedirectUrl(); return ['url' => $url]; /** * Method 3: Advanced * You set additional params which will be return at the callback * */ return Nagad::setOrderID('ORDERID123') ->setAmount('540') ->setAddionalInfo(['pid' => 9, 'myName' => 'DG']) ->checkout() ->redirect(); /** * Method 4: Advanced Custom Callabck * You can set/override callback url while creating payment * */ return Nagad::setOrderID('ORDERID123') ->setAmount('540') ->setAddionalInfo(['pid' => 9, 'myName' => 'DG']) ->setCallbackUrl("https://manual-callback.url/callback") ->checkout() ->redirect(); } //To receive the callback response use this method: /** * This is the routed callback method * which receives a GET request. * * */ public function callback(Request $request) { $verified = Nagad::callback($request)->verify(); if($verified->success()) { // Get Additional Data dd($verified->getAdditionalData()); // Get Full Response dd($verified->getVerifiedResponse()); } else { dd($verified->getErrors()); } }
要接收错误响应,在App/Exceptions/Handler.php中使用此方法
public function render($request, Exception $exception) { if($exception instanceof NagadException) { //return custom error page when custom exception is thrown return response()->view('errors.nagad', compact('exception')); } return parent::render($request, $exception); }
可用方法
用于结账
setOrderID(string $orderID)
:$orderID
可以是任何唯一的字母数字字符串setAmount(string $amount)
:$amount
可以是任何有效的货币数字字符串setAddionalInfo(array $array)
:$array
可以是任何要返回到回调的数组setCallbackUrl(string $url)
:$url
可以是任何要覆盖配置中设置的默认回调URL的URL字符串checkout()
: 用于启动结账过程。redirect()
: 用于直接重定向到NagadPG网页。getRedirectUrl()
: 不进行重定向,而是手动获取重定向URL。
用于回调
callback($request)
:$request
是Illuminate\Http\Request
实例verify()
: 用于验证响应。success()
: 用于检查交易是否成功。getErrors()
: 获取错误和errorCode,如果交易失败 | 返回array[]
getVerifiedResponse()
: 获取完整的验证响应 | 返回array[]
getAdditionalData(bool $object)
: 获取结账期间传递的附加信息。$object
用于设置返回对象或数组。
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件。