این پکیج برای یکپارچهسازی درگاه پرداخت زرین پال با لاراول طراحی شده است.
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 نیز پذیرفته میشوند.