این پکیج برای یکپارچهسازی درگاه پرداخت زرین پال با لاراول طراحی شده است.
PHP 7.2 یا بالاتر
Laravel 7.0 یا بالاتر
- درخواست پرداخت
- تایید پرداخت
- مدیریت خطاها
- استفاده آسان با متدهای زنجیرهای
- انتخاب واحد پول در زمان درخواست هر تراکنش
- پشتیبانی از آخرین نسخه و جدیدترین نسخه های لاراول
برای نصب پکیج از کامپوزر استفاده کنید:
composer require abdal/abdal-zarinpal-pgبرای بروزرسانی پکیج از کامپوزر استفاده کنید:
composer update abdal/abdal-zarinpal-pgسپس سرویسپراوایدر را در فایل config/app.php اضافه کنید: (برای لاراول 11 نیاز به انجام این مورد ندارید)
'providers' => [
// ...
Abdal\AbdalZarinpalPg\ZarinpalServiceProvider::class,
];و فاساد را ثبت کنید: (برای لاراول 11 نیاز به انجام این مورد ندارید)
'aliases' => [
// ...
'Zarinpal' => Abdal\AbdalZarinpalPg\Facades\Zarinpal::class,
];فرض کنید 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('info@ebrasha.com')
->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('info@ebrasha.com')
->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();
}
https://alphajet.ir/abdal-donation
دست ساز با عشق توسط ابراهیم شفیعی (ابراشا)
E-Mail = Prof.Shafiei@Gmail.com
Telegram: https://t.me/ProfShafiei
اگر با مشکلی در پیکربندی مواجه هستید یا چیزی آنطور که انتظار دارید کار نمیکند، لطفا از Prof.Shafiei@Gmail.com استفاده کنید.طرح مشکلات بر روی GitLab یا Github نیز پذیرفته میشوند.
