0
0
اشتراک گذاری:

درگاه پرداخت در لاراول

702 بازدید
درگاه پرداخت در لاراول

آموزش درگاه پرداخت در لاراول :

امروزه یکی از ملزومات وب سایت های فروشگاهی مانند آموزشگام داشتن یک درگاه پرداخت آنلاین بوده که برای موارد متعدد استفاده میشود؛ مواردی که فروش محصول یا خدمت یا حتی در بعضی مواقع فروش حق اشتراک را نیز شامل می شود. همانطور که می دانید برای دریافت درگاه پرداخت از بانک های کشور مانند درگاه پرداخت ملت که یکی از معتبر ترین و پر طرفدار ترین درگاه ها محسوب میشود، نیاز به داشتن نماد اعتماد میباشد.

گرفتن نماد اعتماد شامل چندین مرحله میباشد که باید از طرف کاربر طی شود. بعد از گرفتن نماد اعتماد شما باید مراحل قانونی و بانکی درگاه را انجام دهید که کمی وقت گیر خواهد بود. با این تفاسیر بهترین راه و سریع ترین راهی که باقی می ماند استفاده از درگاه های واسط مانند زرین پال است. در این واسط ها با مدارک کمتر و بدون داشتن نماد اعتماد میتوانید درگاه پرداخت شخصی خودتان را داشته باشید. با ما همراه باشید تا چگونگی ایجاد درگاه پرداخت در لاراول را بیاموزید.

ایجاد درگاه پرداخت در لاراول ( زرین پال ) :

قصد داریم شما را با استفاده از پکیج های آماده و همچنین با قطعه کد های ارائه شده توسط خود زرین پال به درگاه پرداخت متصل کنیم. دو روش برای ایجاد درگاه پرداخت در لاراول وجود دارد که در ادامه بررسی میکنیم :

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

<?php

$MerchantID = 'test'; //Required
$Amount = 1000; //Amount will be based on Toman - Required
$Description = 'توضیحات تراکنش تستی'; // Required
$Email = 'UserEmail@Mail.Com'; // Optional
$Mobile = '09123456789'; // Optional
$CallbackURL = 'http://www.yoursoteaddress.ir/verify.php'; // Required


$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentRequest(
 [
 'MerchantID' => $MerchantID,
 'Amount' => $Amount,
 'Description' => $Description,
 'Email' => $Email,
 'Mobile' => $Mobile,
 'CallbackURL' => $CallbackURL,
 ]
);

//Redirect to URL You can do it also by creating a form
if ($result->Status == 100) {
 echo'
<script type="text/javascript" src="https://cdn.zarinpal.com/zarinak/v1/checkout.js"></script>
<script>
Zarinak.setAuthority( ' . $result->Authority . ');
Zarinak.open();
</script>';
} else {
 echo 'ERR: ' . $result->Status;
}

توضیح کد های بالا برای اتصال درگاه پرداخت در لاراول :

1- MerchantID : کلیدی یکتا است که شما هنگام ثبت نام در زرین پال دریافت میکنید. این پارامتر اجباری است.

2- Amount : مبلغ مد نظر شما برای پرداخت میباشد. همانطور که در کد مشخص شده است، این مبلغ بایستی به تومان باشد و یک پارامتر اجباری است.

3- Description : توضیحات تراکنش را شامل میشود. به عنوان مثال میتواند نام محصول یا خدمت ارائه شده باشد. یک پارامتر اجباری است.

4- Email : ایمیل کاربر را میتواند شامل شود. این پارامتر یک پارامتر اختیاری است.

5- Mobile : شماره همراه کاربر را شامل میشود و یک پارامتر اختیاری است .

6 – CallbackURL : مسیر بازگشت اطلاعات از درگاه پرداخت به سایت ما را مشخص میکند. کدهای اعتبار سنجی را در این مسیر قرار میدهیم .

نمونه کد اعتبار سنجی اطلاعات :

<?php

$MerchantID = 'XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX';
$Amount = 1000; //Amount will be based on Toman
$Authority = $_GET['Authority'];

if ($_GET['Status'] == 'OK') {

$client = new SoapClient('https://www.zarinpal.com/pg/services/WebGate/wsdl', ['encoding' => 'UTF-8']);

$result = $client->PaymentVerification(
[
'MerchantID' => $MerchantID,
'Authority' => $Authority,
'Amount' => $Amount,
]
);

if ($result->Status == 100) {
echo 'Transation success. RefID:'.$result->RefID;
} else {
echo 'Transation failed. Status:'.$result->Status;
}
} else {
echo 'Transaction canceled by user';
}

اعتبار سنجی اطلاعات درگاه پرداخت در لاراول :

قطعه کد بالا اعتبار سنجی اطلاعات برگشتی از درگاه پرداخت با اطلاعات ارسالی ما به درگاه را برسی میکند . در گام اول ما باید کد برگشتی از درگاه (Authority) را گرفته و به همراه مرچنت کد و مبلغ مورد نظر به فانکشن PaymentVerification ارسال کنیم تا اعتبار سنجی انجام شود. این کار برای این انجام میشود که اگر اطلاعات موقع ارسال به درگاه تغییر کرد ( به طور مثال مبلغ ارسالی در گام اول با مبلغ نهایی برای اعتبار سنجی متفاوت بود ) تراکنش ناموفق ثبت شود.

همانطور که میبینید استفاده از قطعه کد های پیشنهادی توسط زرین پال کمی دشوار و خسته کننده است. یک راه بهتر و آسان تر این است که از پکیج هایی که قبلا برای این مورد نوشته شده است استفاده کنید. مانند shetabit/payment , pishran/Zarinpal که ما روش کار با پیشران زرین پال را تحت عنوان روش دوم ایجاد درگاه پرداخت در لاراول، توضیح میدهیم .

درگاه پرداخت در لاراول
درگاه پرداخت در لاراول

روش دوم : استفاده از پکیج pishran/Zarinpal :

شیوه نصب :

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

composer require pishran/zarinpal

تنظیمات :

مرچنت کد خود ار در فایل env. اضافه کنید.

ZARINPAL_MERCHANT_ID=00000000-0000-0000-0000-000000000000

اگه میخواهید از حالت تست درگاه استفاده کنید کد پایین را در فایل env. اضافه کنید.

ZARINPAL_SANDBOX_ENABLED=true

روش استفاده :

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

$response = zarinpal()
    ->amount(100) // مبلغ تراکنش به تومان
    ->request()
    ->zarin() // فعالسازی زرین گیت - اختیاری
    ->callback('https://domain.com/verification') // آدرس برگشت پس از پرداخت
    ->description('transaction info') // توضیحات تراکنش
    ->email('name@domain.com') // ایمیل مشتری - اختیاری
    ->mobile('09123456789') // شماره موبایل مشتری - اختیاری
    ->send();

if (!$response->success()) {
    return $response->error()->message();
}

// ذخیره اطلاعات در دیتابیس
// $response->authority();

// هدایت مشتری به درگاه پرداخت
return $response->redirect();

اعتبار سنجی اطلاعات : 

$authority = request()->query('Authority'); // دریافت کوئری استرینگ ارسال شده توسط زرین پال

$response = zarinpal()
    ->amount(100)
    ->verification()
    ->authority($authority)
    ->send();

if (!$response->success()) {
    return $response->error()->message();
}

// پرداخت موفقیت آمیز بود
// دریافت شماره پیگیری تراکنش و انجام امور مربوط به دیتابیس
return $response->referenceId();

به همین راحتی میتوانید با استفاده از کتابخانه های موجود شما نیز یک درگاه پرداخت در لاراول داشته باشید. البته باز هم نکته حائز اهمیت این است که از قطعه کد های خود زرین پال هم میتوانید استفاده کنید؛ اما استفاده از این کتابخانه ها سبب صرفه جویی در وقت و انرژی ذهنی شما در پیاده سازی درگاه پرداخت زرین پال خواهد شد. صرفه جویی در وقت نیز میتواند سبب پیشرفت سریع تر و اعتماد به نفس شود.

خوب امیدوارم که حال دلتون خوب باشه.

به امید روزای بهتر…

آموزشگام را در شبکه های اجتماعی دنبال کنید :

آیا این مطلب را می پسندید؟
https://amozeshgam.ir/?p=4352
امید قلندری
برنامه نویس Laravel و توسعه دهنده وب سایت آموزشگام. مسلط به زبانهای PHP، سی شارپ و جاوا اسکریپت. سابقه طراحی و توسعه سایت با لاراول و vue.js به صورت حرفه ای؛ و نیز توانا در طراحی سایت با سیستم مدیریت محتوای وردپرس.
برچسب ها:

نظرات

1 نظر در مورد درگاه پرداخت در لاراول

دیدگاهتان را بنویسید