الهدف
بعد هالدرس تقدر تبني صفحة أسعار بخطط متعددة، توصّل 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 — نبنيه في الدرس الجاي.