code4mk/lara-nagad

Laravel nagad payment package

v1.0.1 2021-04-10 12:36 UTC

This package is auto-updated.

Last update: 2024-04-29 04:40:09 UTC


README

nagad%20payment.png

lara-nagad Bangladesh Nagad

Laravel Nagad payment BD

Installation

composer require code4mk/lara-nagad

Setup

1 ) vendor publish (config)

php artisan vendor:publish --provider="Code4mk\Nagad\NagadServiceProvider" --tag=config

1.1 ) if you are using Laravel before version 5.4, manually register the service provider in your config/app.php file

Code4mk\Nagad\NagadServiceProvider::class

2 ) Config setup

  • config/nagad.php
<?php

return [
    'sandbox_mode' => env('NAGAD_MODE', 'sandbox'),
    'merchant_id' => env('NAGAD_MERCHANT_ID','683002007104225'),
    'merchant_number' => env('NAGAD_MERCHANT_NUMBER','01711428036'),
    'callback_url' => env('NAGAD_CALLBACK_URL', 'http://127.0.0.1:8000/nagad/callback'),
    'public_key' => env('NAGAD_PUBLIC_KEY',''),
    'private_key' => env('NAGAD_PRIVATE_KEY','')
];

env setup

NAGAD_MERCHANT_ID=683002007104225
NAGAD_MERCHANT_NUMBER=01711428036
NAGAD_CALLBACK_URL=http://127.0.0.1:8000/nagad/callback
NAGAD_MODE=sandbox // sandbox or live
NAGAD_PUBLIC_KEY="" //sandbox <optional>
NAGAD_PRIVATE_KEY=""  // sandbox <optional>

Usage

get callback url

<?php
use NagadPayment;

$redirectUrl = NagadPayment::tnxID($id)
             ->amount($amount)
             ->getRedirectUrl();
return $redirectUrl;

verify payment // callback

<?php
use NagadPayment;

$verify = (object) NagadPayment::verify();
if($verify->status === 'Success'){
    $order = json_decode($verify->additionalMerchantInfo);
    $order_id = $order->tnx_id;
    // your functional task with order_id
}
if ($verify->status === 'Aborted') {
    dd($verify);
    // redirect or other what you want
}
dd($verify);

Note:

~Sandbox

  • Need a merchant account.
  • Register a Nagad number and need sandbox balance (contact with nagad)

~ Live

  • Need a merchant account (live server)
  • Contact with Nagad and provide your live server ip address.
  • provide support id ($sid) the nagad office

Live mode tips

Sandbox works fine but when you deploy your project on server you can't get any response and don't work payment system

How to enable nagad gateway on server

  • Contact with nagad, provide your ip and support ID which you will get from temporary route get-support-id . Nagad will be white-listed your ip and approve your merchant. Now your nagad gateway work properly on server.

~ temporary route (copy and paste)

Route::get('get-support-id',function(){
    $sid = NagadPayment::tnxID(1)
                 ->amount(100)
                 ->getSupportID();
    return $sid;
})

Demo

Any query