در این مطلب نحوهی استفاده از درگاه بانک صادرات در زبان Php میپردازیم.
نصب پکیج:
ابتدا پکیج dpsoft/saderat رو نصب میکنیم:
composer require dpsoft/saderat
ارسال کاربر به درگاه پرداخت:
برای ارسال کاربر به درگاه بانکی اطلاعات حساب کاربری در بانک صادرات و همچنین اطلاعات دیگری همچون مبلغ و آدرس برگشت (Callback Url) رو نیاز داریم.
ابتدا با استفاده از پکیج نصب شده، اطلاعات درگاه را وارد میکنیم.
<?php
use Dpsoft\Saderat\Saderat;
try{
/**
* @param int $terminalId The Saderat cart terminal id assign to you
*/
$request = new Saderat($terminalId);
/**
* @param string $callbackUrl The url that customer redirect to after payment
* @param int $amount The amount that customer must pay
* @param string $payload Optional addition data
*
* @method payRequest Return invoice id and you can save in your DB
*
*/
$invoiceId = $request->payRequest($callbackUrl, $amount, $payload);
echo $request->getRedirectScript();
}catch (\Throwable $exception){
echo $exception->getMessage();
}
برای درگاه شماره ترمینال، را برای کلاس فراهم میکنیم. این اطلاعات از طریق بانک در اختیارمان قرار میگیرد.
سپس مبلغ (ریال) مورد نظر و آدرس برگشت کاربر از درگاه بانکی (Callback Url) و در صورت نیاز به توضیحات پارامتر سوم($payload) را به عنوان درخواست پرداخت وارد میکنیم. در مقدار برگشتی تابع مقدار کد فاکتور را می توان به منظور پیگیری های بعدی ذخیره کرد و در نهایت کاربر به صفحه پرداخت منتقل می شود.
اگر در این میان خطایی رخ داده باشد مانند معتبر نبودن مبلغ یا آدرس برگشتی می توانیم با استفاده از قسمت Catch این خطا را تشخیص بدیم و نمایش متناسب رو داشته باشیم.
دریافت نتیجه پرداخت:
پس از ارسال کاربر به درگاه پرداخت، در آدرس برگشتی که در مرحله قبل تایین کرده بودیم، نتیجه رو دریافت میکنیم و با اجرای متد تایید تراکنش را تایید می کنیم:
<?php
use Dpsoft\Saderat\Saderat;
try{
/**
* @var int $terminalId
*/
$response = new Saderat($terminalId);
/**
* @method $verify return class of all response value and you can convert to array by toArray() method
*/
$verifyData = $response->verify();
/**
* Check your amount with response amount
*/
echo "Successful payment ...";
}catch (\Throwable $exception){
echo $exception->getMessage();
}
هر نتیجه ای به جز پرداخت موفقیت آمیز همراه با Exception خواهد بود. با استفاده از بلوک Try/Catch صحیح بودن پرداخت رو بررسی میکنیم. کلیه ی اطلاعات بازگشتی از درگاه پرداخت در $verifyData ذخیره شده است.
در صورت فعال کردن متد لغو تراکنش می توان تراکنش را برگشت زد:
<?php
use Dpsoft\Saderat\Saderat;
try{
/**
* @var int $terminalId
*/
$response = new Saderat($terminalId);
$response->rollbackPayment($digitalReceipt);
echo "Successful rollback transaction ...";
}catch (\Throwable $exception){
echo $exception->getMessage();
}
به منظور دسترسی به پارامترهای پاسخ دریافتی از بانک اطلاعات با استفاده از کلاس بازگشتی یا به صورت آرایه قابل دسترسی است:($verifyData نتیجه تایید تراکنش)
برای مثال با استفاده از کد زیر می توان رسید دیجیتال را به دست آورد.
$digitalReceipt = $verifyData->getDigitalReceipt();
و در صورت نیاز به دسترسی به رسید دیجیتال به صورت آرایه می توان از کد زیر استفاده کرد:
$verifyDataArray = $verifyData->toArray();
$digitalReceipt = $verifyDataArray['digitalreceipt'];
متدهای قابل دسترسی پس از تایید نهایی تراکنش:
respcode: کد نتیجه تراکنش
amount: مبلغ تراکنش
invoiceid: شماره فاکتور ارسال شده برای بانک
payload: اطلاعات اضافه ارسال شده به بانک
terminalid: شماره ترمینال
tracenumber: شماره پیگیری پرداخت
rrn: شماره سند بانک
datepaid: تاریخ انجام تراکنش
digitalreceipt: رسید دیجیتالی به منظور تایید یا لغو تراکنش
issuerbank: نام بانک پرداخت کننده
cardnumber: شماره کارت پرداخت کننده
respmsg: پیغام تراکنش
پکیج پرداخت آنلاین بانک صادرات توسط دپارتمان فنی دانش پژوهان توسعه داده شده و به صورت رایگان و متن باز در گیت هاب (https://github.com/dpsoft-official/SaderatBankPayment) منتشر شده است.
نظرات خود را با ما به اشتراک بگذارید...