anovob / laravel-nagad-api
适用于 Laravel 的 Nagad 支付网关(孟加拉国)
dev-master
2021-12-11 11:46 UTC
This package is auto-updated.
Last update: 2024-09-11 18:05:47 UTC
README
Nagad 是孟加拉国的一家金融服务提供商。此包是为 Laravel 6.x、7.x 和 8.x+ 版本的 Nagad 支付网关构建的。
内容
安装
您可以通过 composer 安装此包。
composer require anovob/laravel-nagad-api
设置配置
提取 nagad 配置文件
php artisan vendor:publish --tag=nagad-config
-
这将发布并配置文件在您的应用程序的
config_path()
中。例如:config/nagad.php
-
配置 Nagad 商户账户的配置。在开发阶段使用
sandbox = true
。 -
务必将您应用程序的 时区 设置为
Asia/Dhaka
以与 Nagad PGW 一起工作。为此:转到config/app.php
并设置'timezone' => 'Asia/Dhaka'
使用
NagadPGW 使用三个阶段的支付流程,其中两个是同时进行的。要开始,首先您必须设置 Nagad 回调的回调路由(GET
),并在 nagad 配置文件中命名该路由。
// in routes/web.php Route::get('/nagad/callback', 'NagadController@callback')->name('nagad.callback'); //in config/nagad.php 'callback' => 'nagad.callback' // or use env variable to store
环境设置
NAGAD_METHOD=sandbox NAGAD_MERHCANT_ID=683002007104225 NAGAD_MERHCANT_PHONE=01817535192 NAGAD_KEY_PUBLIC=MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAjBH1pFNSSRKPuMcNxmU5jZ1x8K9LPFM4XSu11m7uCfLUSE4SEjL30w3ockFvwAcuJffCUwtSpbjr34cSTD7EFG1Jqk9Gg0fQCKvPaU54jjMJoP2toR9fGmQV7y9fz31UVxSk97AqWZZLJBT2lmv76AgpVV0k0xtb/0VIv8pd/j6TIz9SFfsTQOugHkhyRzzhvZisiKzOAAWNX8RMpG+iqQi4p9W9VrmmiCfFDmLFnMrwhncnMsvlXB8QSJCq2irrx3HG0SJJCbS5+atz+E1iqO8QaPJ05snxv82Mf4NlZ4gZK0Pq/VvJ20lSkR+0nk+s/v3BgIyle78wjZP1vWLU4wIDAQAB NAGAD_KEY_PRIVATE=MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCJakyLqojWTDAVUdNJLvuXhROV+LXymqnukBrmiWwTYnJYm9r5cKHj1hYQRhU5eiy6NmFVJqJtwpxyyDSCWSoSmIQMoO2KjYyB5cDajRF45v1GmSeyiIn0hl55qM8ohJGjXQVPfXiqEB5c5REJ8Toy83gzGE3ApmLipoegnwMkewsTNDbe5xZdxN1qfKiRiCL720FtQfIwPDp9ZqbG2OQbdyZUB8I08irKJ0x/psM4SjXasglHBK5G1DX7BmwcB/PRbC0cHYy3pXDmLI8pZl1NehLzbav0Y4fP4MdnpQnfzZJdpaGVE0oI15lq+KZ0tbllNcS+/4MSwW+afvOw9bazAgMBAAECggEAIkenUsw3GKam9BqWh9I1p0Xmbeo+kYftznqai1pK4McVWW9//+wOJsU4edTR5KXK1KVOQKzDpnf/CU9SchYGPd9YScI3n/HR1HHZW2wHqM6O7na0hYA0UhDXLqhjDWuM3WEOOxdE67/bozbtujo4V4+PM8fjVaTsVDhQ60vfv9CnJJ7dLnhqcoovidOwZTHwG+pQtAwbX0ICgKSrc0elv8ZtfwlEvgIrtSiLAO1/CAf+uReUXyBCZhS4Xl7LroKZGiZ80/JE5mc67V/yImVKHBe0aZwgDHgtHh63/50/cAyuUfKyreAH0VLEwy54UCGramPQqYlIReMEbi6U4GC5AQKBgQDfDnHCH1rBvBWfkxPivl/yNKmENBkVikGWBwHNA3wVQ+xZ1Oqmjw3zuHY0xOH0GtK8l3Jy5dRL4DYlwB1qgd/Cxh0mmOv7/C3SviRk7W6FKqdpJLyaE/bqI9AmRCZBpX2PMje6Mm8QHp6+1QpPnN/SenOvoQg/WWYM1DNXUJsfMwKBgQCdtddE7A5IBvgZX2o9vTLZY/3KVuHgJm9dQNbfvtXw+IQfwssPqjrvoU6hPBWHbCZl6FCl2tRh/QfYR/N7H2PvRFfbbeWHw9+xwFP1pdgMug4cTAt4rkRJRLjEnZCNvSMVHrri+fAgpv296nOhwmY/qw5Smi9rMkRY6BoNCiEKgQKBgAaRnFQFLF0MNu7OHAXPaW/ukRdtmVeDDM9oQWtSMPNHXsx+crKY/+YvhnujWKwhphcbtqkfj5L0dWPDNpqOXJKV1wHt+vUexhKwus2mGF0flnKIPG2lLN5UU6rs0tuYDgyLhAyds5ub6zzfdUBG9Gh0ZrfDXETRUyoJjcGChC71AoGAfmSciL0SWQFU1qjUcXRvCzCK1h25WrYS7E6pppm/xia1ZOrtaLmKEEBbzvZjXqv7PhLoh3OQYJO0NM69QMCQi9JfAxnZKWx+m2tDHozyUIjQBDehve8UBRBRcCnDDwU015lQN9YNb23Fz+3VDB/LaF1D1kmBlUys3//r2OV0Q4ECgYBnpo6ZFmrHvV9IMIGjP7XIlVa1uiMCt41FVyINB9SJnamGGauW/pyENvEVh+ueuthSg37e/l0Xu0nm/XGqyKCqkAfBbL2Uj/j5FyDFrpF27PkANDo99CdqL5A4NQzZ69QRlCQ4wnNCq6GsYy2WEJyU2D+K8EBSQcwLsrI7QL7fvQ== NAGAD_CALLBACK_URL=nagad.callback
要开始支付,在您的 NagadController 中
use NagadAPI\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 的字符串checkout()
: 用于启动结账过程。redirect()
: 用于直接重定向到 NagadPG 网页。getRedirectUrl()
: 而不是重定向,手动获取重定向 URL。
回调
callback($request)
:$request
应为Illuminate\Http\Request
实例verify()
: 用于验证响应。success()
: 用于检查交易是否成功。getErrors()
: 用于获取失败交易的错误和 errorCode | 返回array[]
getVerifiedResponse()
: 用于获取完整的验证响应 | 返回array[]
getAdditionalData(bool $object)
: 用于获取结账期间传递的附加信息。$object
用于设置返回对象或数组。
许可证
MIT 许可证(MIT)。有关更多信息,请参阅许可证文件。