siddiquinoor/nagad-in-laravel

Nagad支付网关插件用于Laravel

dev-main 2023-03-10 20:36 UTC

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) : $requestIlluminate\Http\Request实例
  • verify() : 用于验证响应。
  • success() : 用于检查交易是否成功。
  • getErrors() : 获取错误和errorCode,如果交易失败 | 返回 array[]
  • getVerifiedResponse() : 获取完整的验证响应 | 返回 array[]
  • getAdditionalData(bool $object) : 获取结账期间传递的附加信息。 $object用于设置返回对象或数组。

许可证

MIT许可证(MIT)。有关更多信息,请参阅许可证文件