ndps / laravel
NTT DATA Payment Services Laravel Composer 包
dev-main
2022-12-05 04:08 UTC
Requires
- php: >=7.3
This package is auto-updated.
Last update: 2024-09-05 07:47:32 UTC
README
NTT DATA Payment Service 的官方 Laravel 库。
先决条件
- PHP 7.3 至 8.1 的最低版本
安装
-
如果你的项目使用 composer,运行以下命令
composer require ndps/laravel:dev-main
-
如果你没有使用 composer,从发布部分下载最新版本。你应该从 atomlite/laravel 下载 laravel.zip 文件。并将其放置在 vendor 文件夹中。
如何使用
-
要处理请求,使用以下函数,该函数将提供请求 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"); }
-
要处理响应,使用以下函数,该函数将返回最终的响应数组。
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); }
-
注意:要将上述响应作为返回 URL 处理,我们需要在 routes/web.php 文件中定义方法为 post,还需要禁用 csrf 验证,编辑以下文件 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/' ]; }