بهترین پکیج زرین پال برای لاراول با Abdal Zarinpal PG

زرین پال یکی از محبوب‌ترین درگاه‌های پرداخت ایرانی است که امکان انجام تراکنش‌های امن و سریع را فراهم می‌کند. پکیج Abdal Zarinpal PG به توسعه‌دهندگان لاراول ....

انتشار: , زمان مطالعه: 5 دقیقه
بهترین پکیج زرین پال برای لاراول با Abdal Zarinpal PG
دسته بندی: تیم ابدال تعداد بازدید: 170

استفاده از زرین پال در لاراول با استفاده از پکیج Abdal Zarinpal PG

زرین پال یکی از پرکاربردترین درگاه‌های پرداخت ایرانی است که با فراهم کردن امکانات متنوع به کسب‌وکارها کمک می‌کند تا تراکنش‌های مالی خود را به صورت آنلاین مدیریت کنند. پکیج Abdal Zarinpal PG به توسعه‌دهندگان لاراول امکان می‌دهد تا به راحتی این درگاه را در پروژه‌های خود ادغام کنند. در ادامه به توضیح مراحل نصب و استفاده از این پکیج می‌پردازیم. Abdal Zarinpal PG توسط ابراهیم شفیعی توسعه و برنامه نویسی شده است.

این پکیج بر روی لاروال های نسخه 7 به بالا پشتیبانی می شود و کاملا بروز است.

مراحل نصب و استفاده:

composer require abdal/abdal-zarinpal-pg

سپس ServiceProvider  را در فایل config/app.php اضافه کنید: (برای لاراول 11 نیاز به انجام این مورد ندارید)

'providers' => [
// ...
Abdal\AbdalZarinpalPg\ZarinpalServiceProvider::class,
];

و Facades را ثبت کنید: (برای لاراول 11 نیاز به انجام این مورد ندارید)

'aliases' => [
// ...
'Zarinpal' => Abdal\AbdalZarinpalPg\Facades\Zarinpal::class,
];

روش استفاده در  Controller های پروژه شما

ارسال مشتری به درگاه

فرض کنید  Route ها را به صورت زیر تعریف کرده اید

Route::get('/payment/request', [ZarinpalController::class, 'requestPayment'])->name('payment.request');
Route::get('/payment/verify', [ZarinpalController::class, 'verifyPayment'])->name('payment.verify');

پس از تعریف  Route  ها می توانید کاربر را به آن پاس دهید و در تابعی که به  route شما متصل شده است برای درخواست پرداخت یا همان ارسال مشتری به درگاه کد زیر را وارد کنید

use Abdal\AbdalZarinpalPg\Zarinpal;

    public function requestPayment(Request $request)
    {
        $response = Zarinpal::merchantId('00000000-0000-0000-0000-000000000000')
            ->amount(13660000)
            ->currency('IRT')
            ->callbackUrl(route('payment.verify'))
            ->description('خرید تست')
            ->email('[email protected]')
            ->mobile('09022223301')
            ->request();

        if (!$response->success()) {
            return response()->json(['error' => $response->message()], 400);

        }

        $authority = $response->getAuthority(); // Save Authority in Database
        return $response->redirect();

    }

بررسی وضعیت تراکنش

use Abdal\AbdalZarinpalPg\Zarinpal;


 public function verifyPayment(Request $request)
    {

        $response = Zarinpal::merchantId('00000000-0000-0000-0000-000000000000')
            ->amount(13660000)
            ->currency('IRT')
            ->authority($request->query('Authority'))
            ->verify();

        if (!$response->success()) {
            return response()->json(['error' => $response->message()], 400);
        }

        return $response->referenceId();
    }

اگر نمی خواهید در هر بار استفاده از پکیج کد درگاه و واحد پول را وارد کنید می توانید از فایل .env نیز استفاده کنید. در فایل .env پروژه خود، مقادیر مربوط به ZARINPAL_MERCHANT_ID و ZARINPAL_CURRENCY را اضافه کنید:

مرچنت کد یا کد درگاه را اضافه کنید

ZARINPAL_MERCHANT_ID=00000000-0000-0000-0000-000000000000

برای تغییر واحد پول به تومان (پکیج پیشفرض از واحد تومان استفاده می کند)

ZARINPAL_CURRENCY=IRT

برای تغییر واحد پول به ریال

ZARINPAL_CURRENCY=IRR

اگر تنظیمات را در فایل .env وارد کردید کدها را به صورت زیر استفاده کنید مثال استفاده با مقادیر پیش‌فرض از فایل تنظیمات ارسال مشترین به درگاه بانک

ارسال مشتری به درگاه

 use Abdal\AbdalZarinpalPg\Zarinpal;

   public function requestPayment(Request $request)
{
    $response = (new Zarinpal())
        ->amount(13660000)
        ->callbackUrl(route('payment.verify'))
        ->description('خرید تست')
        ->email('[email protected]')
        ->mobile('09022223301')
        ->request();

    if (!$response->success()) {
        return response()->json(['error' => $response->message()], 400);
    }

    $authority = $response->getAuthority(); // Save Authority in Database
    return $response->redirect();
}

بررسی وضعیت تراکنش


use Abdal\AbdalZarinpalPg\Zarinpal;


public function verifyPayment(Request $request)
{
    $response = (new Zarinpal())
        ->amount(13660000)
        ->authority($request->query('Authority'))
        ->verify();

    if (!$response->success()) {
        return response()->json(['error' => $response->message()], 400);
    }

    return $response->referenceId();
}

از اینجا می توانید به صفحه رسمی این پکیج در گیت هاب مراجعه نمایید .

 

دیدگاه های مربوط به این مقاله (برای ارسال دیدگاه در سایت حتما باید عضو باشید و پروفایل کاربری شما تکمیل شده باشد)