آموزش اتصال به درگاه پرداخت زرین پال در لاراول

0 نظر
جمعه 01 تیر
مطالعه: 8 دقیقه
برنامه نویسی
در فناوری مالی عصر جدید گاهی دریافت وجه از کاربران به دلایل امنیتی پیچیده به نظر می رسد، اما اتصال به درگاه پرداخت زرین پال در لاراول این کار را برای همه ما آسان کرده است و می توانید تنها با استفاده از نصب یک پکیج امکانات ویژه ای برای کاربران خود مهیا کنید. پس اگر آماده سفارشی سازی در نحوه دریافت حق اشتراک، حق دانلود، خرید محصول و ... در پلتفرم شخصی خود هستید آموزش زیر را دنبال کنید.
مزیت های استفاده از درگاه زرین پال در لاراول
- عدم نیاز به مراحل تایید هویت چند مرحله ای و خسته کننده
- درخواست کمتر برای دریافت e-namad از بانک
- طرفداری دوجانبه از خریدار و فروشند در تضمین پرداخت
- کارمزد کمتر در هنگام استفاده از زرین کارت
- امکان دریافت زرین کارت حتی بدون داشتن وب سایت
- قابلیت استفاده از درگاه اشتراکی در کسب و کارهای شراکتی
- وجود بیش از 70 پلاگین متنوع و کاربردی
- داشتن پنل مدیریتی ساده و کاربردی
- امنیت بالا در سرویس های پرداختی
- امکان گزارش گیری از تراکنش های انجام شده
نحوه اتصال به درگاه پرداخت زرین پال در لاراول
سریع ترین روشی که می توانید با استفاده از آن یک درگاه زرین پال ایجاد کنید، اضافه کردن پکیج در لاراول می باشد. این روش باعث می شود تا بتوانید پرداخت ها را از درگاه زرین پال که مبتنی بر Rest است را دریافت کرده و تایید نهایی را انجام دهید.1- نصب و راه اندازی درگاه زرین پال
با اجرا دستور زیر پکیج مورد نظر را از طریف دستور Composer نصب خواهید کرد:composer requires rasulian/laravel-zarinpal
با کمک دستور زیر ارائه دهنده خدمات را ثبت کنید:
// config/app.php
'providers' => [
// ...
Rasulian\ZarinPal\ZarinPalServiceProvider::class,
];
پس از وارد کردن دستور بالا، جهت منتشر کردن فایل پیکربندی باید با کمک دستور زیر config/zarinpal.php را اجرا کنید:
php artisan vendor:publish --provider="Rasulian\ZarinPal\ZarinPalServiceProvider"
توجه داشته باشید که این محتوای پیش فرض پیکربندی شده است:
// config/zarinpal.php
return [
'params' => [
'merchant-id' => '',
// Leave it empty if you're passing the callback url when doing the request
'callback-url' => '',
// A summary of your product or application, if needed
'description' => '',
],
// Set to true if you want to test the payment in sandbox mode
'testing' => false
];

2- نحوه استفاده از درگاه زرین پال
اکنون که نصب و راه اندازی درگاه زرین پال را انجام دادید می توانید با خیالی آسوده مراحل استفاده از جمله هدایت مشتریان و تایید پرداخت نهایی را پشت سر بگذارید.- هدایت مشتری
use Rasulian\ZarinPal\Payment;
class CheckoutConfirmOrderController extends Controller {
/**
* @param $zarinPal
*/
protected $zarinPal;
public function __construct(Payment $zarinPal)
{
...
$this->zarinPal = $zarinPal;
...
}
public function doPayment(Request $request)
{
$invoice = $this->invoiceRepo->getCurrentInvoice();
// Doing the payment
$payment = $this->zarinPal->request(
// The total price for the order
$invoice->totalPrice,
// Pass any parameter you want when the customer successfully makes the payment
// and gets back to your site
['paymentId' => $invoice->payment_id],
// Callback URL
route('checkout.payment.callback'),
// A summary of your product or application
'Good product'
);
// Throw an exception if the payment request result had any error
if ($payment->get('result') == 'warning')
throw new Exception($payment->get('error'));
// Redirect the customer to the ZarinPal gateway to make the payment
return redirect()->away($payment->get('url'));
}
- تایید پرداخت
use Rasulian\ZarinPal\Payment;
class CheckoutPaymentVerificationController extends Controller {
/**
* @param $zarinPal
*/
protected $zarinPal;
public function __construct(Payment $zarinPal)
{
...
$this->zarinPal = $zarinPal;
...
}
...
public function verifyPayment(Request $request)
{
$authority = $request->input('Authority');
$invoice = $this->invoiceRepo->getCurrentInvoice();
$verify = $this->zarinPal->verify($invoice->totalPrice, $authority);
if ($verify->get('result') == 'success') {
...
// Do the needed stuff if the verification was successful
...
// If not, we can check which status code is given back to us from the ZarinPal gateway
// and show an error message corresponding to the status code.
} else if (in_array($verify->get('code'), [-42, -54])) {
return view('shopping.payment')->with(['error' => $verify->get('error')]);
}
}
