الدفع في المتجر الإلكتروني
ينتقل العميل من تصفّح الكتالوج إلى دفعة مؤكَّدة عبر Stripe دون أن تدخل بيانات البطاقة حالة التطبيق إطلاقًا.
- 1يُعرض الكتالوج من App Router في Next.js، مع جلب قراءات المنتجات والمخزون عبر axios وتخزينها مؤقتًا بـ SWR.
- 2وإضافة عنصر تُرسل إجراءً إلى مخزن السلة في Zustand، الذي يحتفظ ببنود الطلب والكمّيات كحالة على جانب العميل يمكن قراءتها من أي مكوّن.
- 3وتشتقّ واجهة السلة الإجماليات من ذلك المخزن وتعكس التغييرات فورًا، دون رحلة ذهاب وإياب إلى الخادم عند تعديل الكمّيات.
- 4وتُركّب صفحة الدفع مكوّنات Stripe Elements عبر @stripe/react-stripe-js، فتُعرض حقول البطاقة داخل إطارات iframe يتحكّم بها Stripe.
- 5وتُؤكَّد الدفعة لدى Stripe باستخدام المفتاح العلني المأخوذ من ملف بيئة الإنتاج؛ ولا تدخل تفاصيل البطاقة مخزن Zustand ولا حزمة التطبيق إطلاقًا.
- 6وعند التأكيد، يُفرَّغ مخزن السلة وتُعيد واجهة الطلبات الجلب عبر SWR لالتقاط الطلب المُنشأ حديثًا.



