I'm always excited to take on new projects and collaborate with innovative minds.

Phone

+20 115 052 9992

Website

https://ibrahimahmed.online/

Social Links

دليلك الشامل لربط بوابات الدفع (Payment Gateways) مع لارفيل (Laravel)

دليلك الشامل لربط بوابات الدفع (Payment Gateways) مع لارفيل (Laravel) أهلاً بيك يا صديقي المبرمج. أكيد لو شغال في مجال تطوير الويب (Web Development)، جالك في وق

دليلك الشامل لربط بوابات الدفع (Payment Gateways) مع لارفيل (Laravel)
Reading Count: 1

دليلك الشامل لربط بوابات الدفع (Payment Gateways) مع لارفيل (Laravel)

أهلاً بيك يا صديقي المبرمج. أكيد لو شغال في مجال تطوير الويب (Web Development)، جالك في وقت من الأوقات عميل وقالك "عايز أبيع منتجاتي على الموقع"، وهنا بتبدأ رحلة البحث عن إزاي تربط بوابات الدفع (Payment Gateways) زي سترايب (Stripe) أو باي موب (Paymob). الحقيقة الموضوع في البداية ممكن تحسه معقد ومخيف بسبب مسئولية الفلوس والبيانات الحساسة، لكن الحقيقة إنه أبسط مما تتخيل لو فهمت الـ Flow ماشي إزاي.

ليه بنحتاج نربط بوابات دفع في لارفيل (Laravel)؟

لارفيل بتقدم بيئة عمل قوية جداً، ومع وجود أداة زي Laravel Cashier للتعامل مع الاشتراكات (Subscriptions) وسترايب (Stripe)، الموضوع بقى أسهل بكتير. لكن فيه تحديات زي تأمين البيانات (Data Security) والتعامل مع الـ Webhooks عشان نضمن إن الطلب اتدفع فعلاً قبل ما نسلم العميل المنتج أو الخدمة.

خطوات الربط مع سترايب (Stripe) في لارفيل

سترايب هي المعيار العالمي حالياً، والربط معاها بيمر بـ 3 خطوات أساسية:

1. تثبيت الحزمة (Package):

composer require laravel/cashier

2. إعداد الـ .env:

STRIPE_KEY=pk_test_...
STRIPE_SECRET=sk_test_...

3. إنشاء الـ Checkout Session في الـ Controller:

public function checkout(Request $request) {
return $request->user()->checkout(['price_id' => 'price_123'], [
'success_url' => route('checkout-success'),
'cancel_url' => route('checkout-cancel'),
]);
}

التعامل مع الـ Webhooks لتأكيد الدفع بأمان

أكبر غلطة بيقع فيها المبرمجين المبتدئين هي الاعتماد على الـ Client-side عشان يتأكدوا إن الدفع تم. يا بطل، ده أكبر خطر أمني! لازم تعتمد على الـ Webhook. الـ Webhook هو رسالة بتبعتها بوابة الدفع (سواء Stripe أو Paymob) للسيرفر بتاعك بتقوله فيها: "يا لارفيل، العميل ده دفع بنجاح، تقدر تفتحله الخدمة".

في لارفيل، بننشئ Route خاص للـ Webhook وبنتأكد من صحة التوقيع (Signature Verification) عشان نضمن إن الطلب جاي فعلاً من بوابة الدفع ومش تلاعب من حد.

الربط مع باي موب (Paymob) للمشاريع في مصر والشرق الأوسط

باي موب (Paymob) هي الخيار المفضل في مصر. هي مش مدعومة natively زي سترايب في Cashier، فبتحتاج تستخدم الـ API الخاص بيهم (REST API). الخطوات باختصار:

  • الحصول على الـ Authentication Token من خلال الـ API Key الخاص بحسابك.
  • إنشاء طلب (Order ID) على سيرفرات باي موب.
  • الحصول على الـ Payment Key لاستخدامه في عرض صفحة الدفع (iFrame).
  • التعامل مع الـ Callback URL اللي بتبعت عليه باي موب حالة العملية (Transaction Status).

نصيحة من أخ لمبرمج

بص يا هندسة، الربط مع بوابات الدفع مش بس كود، ده "أمانة". دايماً اتأكد إنك بتستخدم الـ Environment Variables في ملف الـ .env ومتحطش الـ API Keys في الكود نفسه (Hardcoded). دايماً جرب في الـ Sandbox أو الـ Test Mode لحد ما تتأكد 100% إن كل حالة (نجاح، فشل، إلغاء) متغطية بالكود بتاعك. الممارسة هي اللي هتخليك متمكن، فجرب تعمل مشروع صغير (موقع تجارة إلكترونية بسيط) وربطه بالـ Test mode بتاع بوابة دفع.

بالتوفيق في مشاريعك الجاية، ولو وقفت قدامك حاجة في الـ Integration، التوثيق (Documentation) بتاع بوابات الدفع هو صديقك الصدوق!


Share

Related posts

Jun 01, 2026 • 1 min read
Reading Count: 7
دليل المبتدئين لدخول عالم الباك إند (Backend Development) في 2026

دليل المبتدئين لدخول عالم الباك إند (Backend Development) في 2026 بتشوف تطبيقات زي فيسبوك أو طلبات و...

Jun 01, 2026 • 1 min read
Reading Count: 10
إزاي تضيف الذكاء الاصطناعي (AI) لتطبيقات لاراڤيل (Laravel) باحترافية؟

إزاي تضيف الذكاء الاصطناعي (AI) لتطبيقات لاراڤيل (Laravel) باحترافية؟ أكيد مريت باللحظة دي: العميل ب...

May 25, 2026 • 1 min read
Reading Count: 24
ليه لازم تستخدم تايب سكريبت (TypeScript) في مشاريعك الجاية؟

ليه لازم تستخدم تايب سكريبت (TypeScript) في مشاريعك الجاية؟ أكيد مريت بالموقف اللي الكود بتاعك فيه ش...