تخطَّ إلى المحتوى

الأسعار + Stripe Checkout

الدرس 9 من 38 4 دقايق قراءة

الهدف

بعد هالدرس تقدر تبني صفحة أسعار بخطط متعددة، توصّل Stripe Checkout، وتوجّه المستخدم بعد الدفع لصفحة النجاح أو الإلغاء.

ليش هذا الحين؟

الداشبورد جاهز والمستخدم يستخدم التطبيق — الحين الوقت المناسب تطلب منه يدفع. صفحة الأسعار مو مجرد UI، هي قرار عمل: كم تسعّر؟ شنو تعرض؟ وكيف تقنع؟ Stripe يسهل الربط التقني، بس القرار التجاري عليك أنت.

الفكرة

Stripe Checkout هو صفحة دفع جاهزة تستضيفها Stripe نفسها — أنت ما تلمس بيانات البطاقة أبد، Stripe يتكفل بكل شي: الالتزام بمعايير أمان بطاقات الدفع (PCI compliance)، 3D Secure، العملات، المحاولات الفاشلة.

الفكرة: تسوي checkout.sessions.create في الـ API route، تحدد الـ priceId والـ URLs، و Stripe يرجعك session.url — تحول المستخدم عليها.

الـ priceId تجيبه من Stripe Dashboard: روح Products، اختار منتج، افتح Price، وانسخ price_xxx. هذا مو secret، تقدر تحطه في frontend بس أحسن يكون في env.

Free vs Paid: الـ Free tier ما يحتاج Stripe — بس ضفه في الواجهة للمقارنة. الـ paid tiers يحتاجون Checkout.

success_url مو مصدر حقيقة: المستخدم يقدر يوصل للـ success URL بدون ما يدفع. مصدر الحقيقة هو الإشعار التلقائي من الخادم (webhook) — نبنيه في الدرس الجاي.