لو عندك موقع أو متجر إلكتروني وعاوز تضيف الدفع الإلكتروني، لازم تستخدم خدمة زي Stripe عشان تستقبل المدفوعات بأمان
في المقال ده هشرحلك إزاي تضيف الدفع الإلكتروني في Next.js باستخدام Stripe API خطوة بخطوة ان شاء الله
أولًا: يعني إيه Stripe وليه نستخدمه؟ 🤔
Stripe هو واحد من أقوى حلول الدفع الإلكتروني اللي بتوفر تكامل سهل مع مواقع الويب وبيخليك تستقبل المدفوعات عن طريق البطاقات البنكية Apple Pay، Google Pay وغيرها.
ثانيا: إزاي نضيف Stripe في Next.js؟ 🛠️
1️⃣ تثبيت الباكدجات الأساسية:
2️⃣ إنشاء API Route لمعالجة المدفوعات
في Next.js بنستخدم API Routes عشان نتعامل مع عمليات الدفع.
هنضيف ملف جديد في:
📂 pages/api/checkout.js
📝شرح سريع للي عملناه هنا:
- – أنشأنا Checkout Session فيها تفاصيل المنتج.
- – حددنا طرق الدفع المقبولة (في الحالة دي “Card”).
- – جهزنا روابط النجاح والإلغاء اللي هيرجع ليها المستخدم بعد الدفع.
3️⃣ إنشاء زرار الدفع في الفرونتيند:
📂 components/CheckoutButton.js
لو عايز تضيف زرار شراء باستخدام Stripe Checkout في الموقع، هتمشي علي الخطوات دي:
-
تحميل مكتبة Stripe
أول حاجة، هتستخدم مكتبة @stripe/stripe-js عشان تقدر تتعامل مع Stripe في المتصفح. هتحتاج تحمل loadStripe وتستخدمه عشان تجهز الاتصال بـ Stripe باستخدام المفتاح العام (Public Key) اللي بتاخده من حسابك على Stripe.
-
تجهيز زر الشراء
هتعمل زرار عادي في التطبيق، ولما المستخدم يضغط عليه، هيشتغل حدث (Event Handler) ينفذ الخطوات الجاية:
- تبعت طلب (Request) لـ API عندك (مثلاً /api/checkout) عشان ينشئ جلسة دفع (Checkout Session).
- تستقبل sessionId من الرد اللي راجع من الـ API.
- تستخدم redirectToCheckout عشان تحول المستخدم مباشرة على صفحة الدفع في Stripe.
-
إنشاء API خاص بالدفع
عشان الخطوات اللي فاتت تشتغل، لازم يكون عندك API Route في Next.js (في فولدر pages/api) مسؤول عن إنشاء جلسة الدفع، وده بيتم من خلال مكتبة stripe الخاصة بالسيرفر.
-
تجربة الزرار
بعد ما تخلص، جرب تضغط على الزرار، المفروض هيحولك على صفحة الدفع في Stripe، وهناك تقدر تكمل العملية.
ثالثًا: التعامل مع Webhooks لمتابعة الدفع 💡
بعد ما العميل يدفع إزاي نعرف إن الدفع تم بنجاح؟ هنا بنستخدم Webhooks وهي إشعارات أوتوماتيكية من Stripe لما يحصل تغيير في حالة الدفع.
📂 pages/api/webhooks.js
📝 شرح سريع للي عملناه هنا:
- – استقبلنا إشعارات Stripe Webhooks لما عملية الدفع تكتمل.
- – عملنا تحقق من التوقيع الأمني عشان نتاكد إن البيانات جاية من Stripe.
- – سجلنا المدفوعات اللي تم تأكيدها.
رابعا: إزاي تجرب الدفع محليًا؟ 🛠️
قبل ما تشغل Webhooks لازم تفتح Stripe CLI عشان تستقبل البيانات محليًا:
وكده أي دفعة هتحصل، هيوصل إشعار للـ API بتاعك فورا
وبكده نكون خلصنا شرحنا عن الدفع الإلكتروني باستخدام Stripe في Next.js
لوعندك سؤال أو استفسار، اكتب في الكومنتات.
قسم التعليقات
يوسف
ازاي اقدر اتحفظ علي فلوس من العميل كرهن مثلا لو مرجعش المنتج اللي بيأجره مني اقدر اني اخد منه الفلوس دي