Table of Contents
أولاً:مقدمة وإنشاء المشروع
Laravel&PayPal
مقدمة
سنتعلم في هذا الدرس طريقة ربط مشروع لارافيل مع بوابة دفع إلكترونية مثل PayPal بطريقة سهلة وفعالة فقط تابع الشرح ونفذ الخطوات لكي تستطيع ربط مشروعك ببوابة الدفع بنجاح
سوف نقوم بعمل مشروع على سبيل المثال صفحة تعرض منتجات تم شراءها والمطلوب دفع المبلغ بواسطة بوابة دفع إلكتروني
سنكتب الأمر التالي لإنشاء المشروع
composer create-project laravel/laravel example-payment
ثانياً: تشغيل المشروع
سنكتب الأمر التالي للوصول للمشروع في terminal
cd example-payment
ثم نكتب الأمر التالي . code لفتح البروجكت في محرر الأكواد
نقوم بكتابة الأمر التالي php artisan serv
ثالثاً:إنشاء قاعدة البيانات
ننشيء قاعدة بيانات باسم example_paymentDB
نقوم بربط قاعدة البيانات بمشروعنا
ثم نقوم بكتابة الأمر التالي php artisan migrate
رابعاً:إنشاء controller باسم PaymentController
php artisan make:controller PaymentController
خامساً:إنشاء route لعرض صفحة شراء المنتجات
Route::get('/create',[PaymentController::class,'create'])->name('payments.create');
ونستطيع الوصول للصفحة بإضافة هذه الدالة في PaymentController
public function create(){
return view('payments.create');
}
سادساً: صفحة شراء المنتجات
سابعاً: إنشاء حساب على paypal
سنقوم بإنشاء حساب على paypal و paypal sandbox ثم نقوم بنسخ Client ID و Secret key
ونقم بلصقهما في مشروعنا داخل ملف env
بعد إضافة client ID و secret key حدد نوع العملة في PAYPAL_CURRENCY مثل USD
ثامناً: ربط المشروع ببوابة الدفع PayPal
سنقوم بكتابة الأمر التالي في terminal
composer require league/omnipay omnipay/paypal
ثم نقوم بالدخول إلى PaymentController ونضيف الأكواد التالية
gateway = Omnipay::create('PayPal_Rest');
$this->gateway->setClientId(env('PAYPAL_CLIENT_ID'));
$this->gateway->setSecret(env('PAYPAL_CLIENT_SECRET'));
$this->gateway->setTestMode(true);
}
public function create(){
return view('payments.create');
}
public function pay(Request $request)
{
try {
$response = $this->gateway->purchase(array(
'amount' => $request->amount,
'currency' => env('PAYPAL_CURRENCY'),
'returnUrl' => url('success'),
'cancelUrl' => url('error')
))->send();
if ($response->isRedirect()) {
$response->redirect();
}
else{
return $response->getMessage();
}
} catch (\Exception $exception) {
return $exception->getMessage();
}
}
}
تاسعاً: تجربة عملية الدفع
نفتح صفحة المشتريات ونضغط على زر Payment PayPal ثم سيتم توجيهنا إلى paypal sandbox
ثم ندخل بيانات الدخول الخاصة بنا وبعد الضغط على log in سيتم عرض المبلغ المطلوب دفعه
وبهذه الطريقة تم ربط مشروعنا ببوابة الدفع الإلكترونية PayPal Gateway
عاشراً: المراجع والمصادر