عام · ليس للنشر بعد

انتهاء صلاحية الدفعات (Phase 9.1)

المصدر: الكود الحالي + docs/STUDENTPAY_PHASE9_1_IMPLEMENTATION_REPORT.md. لم تُغيَّر قواعد الأعمال في مهمة البوابة.

القرار A — TTL للدفعات الجديدة

  • المدة الافتراضية: 30 دقيقة من لحظة الإنشاء/الحجز على الخادم (AppTimezone).
  • المفتاح: PENDING_PAYMENT_TTL_MINUTES (الاسم فقط — بلا قيمة سرية).
  • قيمة expires_at من العميل لا تتجاوز TTL الخادم.

القرار B — السجلات القديمة NULL

  • لا backfill، لا انتهاء تلقائي، لا تحرير حجز بسبب الفراغ.
  • تبقى للمراجعة/التحصيل/الإلغاء اليدوي.

القرار C — جدولة الاختبار

  • مثال كل 5 دقائق موجود في المستودع كملف توثيق/مثال.
  • Implemented, not fully verified as installed — التقرير يؤكد عدم تفعيل cron نظام/إنتاج.
  • الأمر المعاد استخدامه: bin/expire-pending-payments.php مع --dry-run وهدف studentpay_test.

أدلة اختبار (تقارير تاريخية)

نتائج Feature مذكورة في تقرير Phase 9.1 (مثل OK 184/1826). هذه أرقام تقرير؛ لم تُعاد كلّها أثناء بناء البوابة.