ndps/laravel

NTT DATA Payment Services Laravel Composer package

dev-main 2022-12-05 04:08 UTC

This package is auto-updated.

Last update: 2025-04-05 08:57:09 UTC


README

Official Laravel library for NTT DATA Payment Service.

Prerequisites

  • A minimum of PHP 7.3 upto 8.1

Installation

  • If your project using composer, run the below command

    composer require ndps/laravel:dev-main
  • If you are not using composer, download the latest release from the releases section. You should download the laravel.zip file from atomlite/laravel. And place in vendor folder.

How To Use It

  • To handle the request use below function which will provide the request URL.

      public function payment()
     {
       include_once base_path('vendor/autoload.php');
       $transactionRequest = new \NDPS\TransactionRequest();
    
       /* Add your return URL */
       $ru = "http://127.0.0.1:8000/response";
    
       /*
       *Setting all values here
       */
       $transactionRequest->setLogin('192');
       $transactionRequest->setPassword("Test@123");
       $transactionRequest->setProductId("NSE");
       $transactionRequest->setAmount('50.55');
       $transactionRequest->setTransactionCurrency("INR");
       $transactionRequest->setTransactionAmount('50.55');
       $transactionRequest->setReturnUrl($ru);
       $transactionRequest->setClientCode('NAVIN');
       $transactionRequest->setTransactionId('0010');
       $transactionRequest->setCustomerName("Test Name");
       $transactionRequest->setCustomerEmailId("test@test.com");
       $transactionRequest->setCustomerMobile("9999999999");
       $transactionRequest->setCustomerBillingAddress("Mumbai");
       $transactionRequest->setCustomerAccount("639827");
       $transactionRequest->setReqHashKey("KEY123657234");
       $transactionRequest->seturl("https://paynetzuat.atomtech.in/paynetz/epi/fts");
       $transactionRequest->setRequestEncypritonKey("8E41C78439831010F81F61C344B7BFC7");
       $transactionRequest->setSalt("8E41C78439831010F81F61C344B7BFC7");
    
    
       $url = $transactionRequest->getPGUrl();
       echo "<br>url:<br>".$url;
       header("Location: $url");
      }
  • To handle the response use below function which will return the final response array.

       public function response()
         {
          include_once base_path('vendor/autoload.php');
          $transactionResponse = new \NDPS\TransactionResponse();
    
          /*
          **Enter the keys provided by NDPS
          */
          $transactionResponse->setRespHashKey("KEYRESP123657234");
          $transactionResponse->setResponseEncypritonKey("8E41C78439831010F81F61C344B7BFC7");
          $transactionResponse->setSalt("8E41C78439831010F81F61C344B7BFC7");
          $arrayofdata = $transactionResponse->decryptResponseIntoArray($_POST['encdata']);
    
    
          /*
          **Signature Verification for response and reponse verification
          */
          $verification = $transactionResponse->validateResponse($arrayofdata, "KEYRESP123657234");		
          if($verification){
    	// final logic
    	if($arrayofdata["f_code"] == "Ok"){
    	  echo "Transaction successful!";
    	}
    	elseif($arrayofdata["f_code"] == "C"){ 
    	  echo "Transaction Cancelled!";	
    	}
    	else{
    	  echo "Transaction Failed!";	
    	}	  
          }
          else{
    	echo "Transaction Failed!";
          }
    
           echo "<br><br>Response Array:<br>";
           print_r($arrayofdata);
    
        }   
  • Note: To handle above response as return URL we need defined method as post in routes/web.php file, also we need disable csrf validation for this response function edit following file app/Http/Middleware/VerifyCsrfToken.php

namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as Middleware;
class VerifyCsrfToken extends Middleware
{
    /**
     * Indicates whether the XSRF-TOKEN cookie should be set on the response.
     *
     * @var bool
     */
    protected $addHttpCookie = true;
    /**
     * The URIs that should be excluded from CSRF verification.
     *
     * @var array
     */
    protected $except = [
        'response/'
    ];
}