Skip to content

Latest commit

 

History

History
49 lines (37 loc) · 1.9 KB

File metadata and controls

49 lines (37 loc) · 1.9 KB

🔧 إصلاح مشكلة Stripe Redirect - الحل النهائي

المشكلة

بعد إتمام الدفع عبر Stripe، المستخدم كان بيحصل redirect إلى localhost:3000/allorders بدلاً من https://swiftcartapp.vercel.app/allorders.

السبب

الـ URL اللي بيتم إرساله لـ Stripe API كان بيستخدم environment variables أو client-side URLs اللي ممكن تحتوي على localhost.

الحل المطبق

1. في src/checkoutActions/checkout.action.ts

// Simple solution: Always use production URL for Stripe redirect
const finalUrl = 'https://swiftcartapp.vercel.app/allorders';

const res = await fetch(
  `https://ecommerce.routemisr.com/api/v1/orders/checkout-session/${cartId}?url=${finalUrl}`,
  // ... rest of the request
);

2. في src/app/checkout/[id]/page.tsx

// Simple solution: Always use production URL
const currentUrl = 'https://swiftcartapp.vercel.app';

const res = await OnlineCheckout(id, currentUrl, values);

النتيجة

  • ✅ Stripe سيحول المستخدم دائماً إلى https://swiftcartapp.vercel.app/allorders بعد الدفع
  • ✅ لا يوجد اعتماد على environment variables أو client-side URLs
  • ✅ الحل يعمل في كل من development و production
  • ✅ البناء يتم بنجاح بدون أخطاء

التحقق من الحل

  1. Deploy التطبيق إلى Vercel
  2. جرب عملية checkout
  3. بعد الدفع في Stripe، تأكد من التحويل إلى الـ URL الصحيح
  4. شوف الـ console logs للتأكد من الـ URL المستخدم

ملاحظات

  • الحل بسيط ومباشر - hardcoded URL للـ production domain
  • لا يحتاج environment variables معقدة
  • يعمل في كل الحالات بدون تعقيد

الحل مطبق وجاهز للاستخدام!