القائمة

تاريخ انتهاء بطاقة الائتمان: التنسيق والقواعد والحالات الحدية

تاريخ انتهاء بطاقة الائتمان يطبع كشهر وسنة، وتبقى البطاقة صالحة إلى آخر ذلك الشهر. تعرف على قواعد القراءة والتخزين واختبار الحدود.

تاريخ النشر

  • بيانات اختبار
  • المدفوعات
  • التحقق في النماذج

يشغل تاريخ انتهاء بطاقة الائتمان أربعة محارف على البلاستيك ويسبب عددا غير متناسب من الأخطاء في البرمجيات التي تقرؤه. فالقيمة المطبوعة قصيرة، لكنها تحمل قاعدتين في وقت واحد: أي شهر تتوقف فيه البطاقة عن العمل، وفي أي لحظة من آخر يوم في ذلك الشهر تتوقف فعلا. والخطأ في هذه الحدود من الطرق الكلاسيكية التي يرفض بها نموذج دفع بطاقة ما زالت قابلة للاستخدام تماما.

تشرح المقاطع التالية معنى التاريخ المطبوع، وكيف تعمل قاعدة نهاية الشهر، ولماذا نادرا ما تخزن النماذج وقواعد البيانات الشيء نفسه الذي تعرضه البطاقة، وكيف تختبر الحالات الحرجة.

ماذا يعني التاريخ المطبوع

التاريخ على البطاقة شهر وسنة، كل منهما مكتوب برقمين، والشهر أولا: الشهر التاسع والسنة السادسة والعشرون مثلا، أو الشهر الأول والسنة الثلاثون. ولا يوجد يوم على البطاقة، وهذا أول مصادر الالتباس، إذ يبحث الناس عن يوم لأن كل تاريخ آخر يتعاملون معه يحتوي عليه.

ويصف الشهر والسنة متى تخرج البطاقة من الصلاحية، لا متى أصدرت. فبطاقة مطبوعة بتاريخ يبعد سنوات عدة أمر طبيعي، لأن الجهات المصدرة تستبدل البطاقة عادة قبل انتهائها بوقت طويل.

والقيمة ليست مشتقة من أي شيء آخر على البطاقة. فهي ليست مجموع تحقق ولا تتفاعل مع الرقم. وهذا مهم للاختبار: فتاريخ الانتهاء لا يمكن اختلاقه بالحساب، بل يجب تزويده، ولهذا تأتي البطاقات المنشأة ومعها تاريخها.

هل تبقى البطاقة صالحة طوال الشهر؟

نعم. وهذه هي القاعدة التي تفاجئ الناس. فالبطاقة المطبوعة بشهر وسنة معينين تقبل حتى آخر يوم في ذلك الشهر، إلى اللحظة الأخيرة من ذلك اليوم، وفق المنطقة الزمنية التي يستخدمها نظام التفويض لدى الجهة المصدرة.

فبطاقة مطبوعة بالشهر التاسع والسنة السادسة والعشرون تكون قابلة للاستخدام في الثلاثين من سبتمبر من تلك السنة، وتخرج من الصلاحية في اللحظة الأولى من أكتوبر. وأي نظام يقطع البطاقة في بداية سبتمبر، أو في منتصف ليل اليوم الأخير، يرفض مدفوعات صحيحة لمدة تقاس بالساعات أو الأيام.

الشهر والسنة المطبوعان أول يوم للصلاحية آخر يوم للصلاحية
الشهر 1 والسنة 2026 1 يناير 2026 31 يناير 2026
الشهر 9 والسنة 2026 1 سبتمبر 2026 30 سبتمبر 2026
الشهر 12 والسنة 2026 1 ديسمبر 2026 31 ديسمبر 2026

ويظهر الجدول أيضا لماذا يهم عدد أيام الشهر. فشهر فبراير هو الحالة الحرجة، لأن يومه الأخير يعتمد على السنة، وأي نموذج أو مهمة مجدولة تفترض ثمانية وعشرين يوما ستخطئ الحدود في سنة كبيسة.

لماذا تطلب النماذج رقمين لا أربعة؟

تطبع البطاقات رقمين فقط للسنة توفيرا للمساحة، وتطلب النماذج الرقمين نفسهما عادة لأن ذلك ما يقرؤه المستخدم. وهذا العرف ينقل قرارا إلى البرمجية: إلى أي قرن تنتمي هذه القيمة؟

إذا كتبنا القرن بالكلام لا بالكود، فالنهج الشائع هو معاملة السنة ذات الرقمين كمنتمية إلى القرن الحالي أو التالي بناء على قربها من اليوم. وقيمة سنة تبدو بعيدة في الماضي هي في الغالب خطأ كتابة، لا بطاقة من عصر سابق، وقيمة تفك إلى القرن الخطأ إما ترفض كمنتهية أو تقبل إلى الأبد.

وأسلم نهج للنموذج أن يقبل ما لدى المستخدم، ويحوله مرة واحدة إلى تمثيل لا لبس فيه، أي شهر وسنة كاملة من أربعة أرقام، أو يوم أول ويوم أخير، ثم يستخدم ذلك التمثيل في كل مكان بعده. ولا تقارن سنوات برقمين مباشرة أبدا، لأن المقارنة تعيد تعريف معنى القرن بصمت عند كل انتقال.

تنسيق العرض وتنسيق التخزين شيئان مختلفان

السلسلة التي يراها العميل والقيمة التي يحفظها النظام نادرا ما تكونان واحدة، وخلطهما مصدر موثوق للعيوب.

على البطاقة وفي حقل الإدخال تظهر القيمة برقمين للشهر ورقمين للسنة. وفي قاعدة البيانات تخزن غالبا كتاريخ أول الشهر، أو كعمودين صحيحين منفصلين للشهر والسنة، أو كطابع زمني للحظة الصلاحية الأخيرة. ولكل خيار نتائجه. فطابع أول الشهر سهل الفرز وسهل المقارنة، لكنه لا يخبرك متى تنتهي البطاقة إلا إذا عرفت أيضا قاعدة نهاية الشهر. وطابع اللحظة الأخيرة يشفر الحدود الصحيحة لكنه يبدو مقلقا في شاشة إدارية لا يتوقع فيها أحد رؤية وقت يوم بجانب تاريخ انتهاء.

وأي تمثيل تختار، أبق التحويل في مكان واحد. فالخطأ الذي يظهر في الإنتاج يكون عادة تحويلا ثانيا كتبه شخص لم يعلم بوجود الأول، فيختلف الاثنان بشهر كامل.

أخطاء شائعة عند كتابة تاريخ الانتهاء

أخطاء الناس في هذا الحقل تتبع قائمة قصيرة، ولكل منها استجابة معقولة:

  • كتابة السنة بأربعة أرقام في حقل من رقمين. اقبلها إن أمكنك ربطها بلا لبس، ولا تسقط المحارف الأولى بصمت.
  • تبديل الشهر والسنة. فالشهر الثالث عشر والسنة الثامنة والعشرون غير صالحين، لذا افحص كل جزء مقابل نطاقه لا مقابل تركيبهما فقط.
  • إدخال شهر بصفر أولي في حقل يتوقع رقما واحدا. عامل الواحد والواحد بعد صفر كالشهر نفسه.
  • لصق قيمة بفاصل لا يتوقعه الحقل، كشرطة حيث يجب أن تكون مائلة.
  • إدخال تاريخ مضى، وهو رفض ينبغي أن يشرحه النموذج لا أن يكتفي بالإشارة إليه.

للمطورين: ضوابط الإدخال واختبارات الحدود

ضابطان صغيران يمنعان معظم هذا العناء. الأول فصل الشهر والسنة في حقلين مستقلين، أو استخدام حقل واحد يرشد المستخدم بصريا إلى الشكل المتوقع، فيصير تبديل القيم غير محتمل بدل أن يكون قابلا للكشف فقط. والثاني فحص كل مكون مقابل نطاقه قبل فحص التركيب، فيعرف المستخدم أي جزء هو الخطأ.

أما منطق الحدود، فاختبر طرفي النطاق لا وسطه. والحالات الأربع التي تستحق التدوين هي أول يوم في الشهر المطبوع، وآخر يوم فيه، واليوم التالي لآخر يوم، وحالة اليوم الأخير نفسها في سنة كبيسة. والاختبار المكتوب على وسط شهر لا يثبت شيئا تقريبا عن القاعدة التي تحاول حمايتها.

ثم افحص سلوك نظامك عندما تتحرك الساعة. فإذا كان تاريخ الانتهاء المخزن يحول مرة واحدة لحظة الإرسال ولا يعاد النظر فيه أبدا، فإن نموذجا بقي مفتوحا عبر انتقال شهر سيرسل تاريخا صار غير صالح للتو. قرر عمدا هل هذا خطأ يستحق الإظهار أم حالة حدية مقبولة، وتأكد من توافق طلب الدفع وسجلاتك الخاصة بشأنه.

الحصول على تاريخ انتهاء مطابق من أداة البطاقات

كل بطاقة تنتجها أداة إنشاء رقم البطاقة تأتي بتاريخ انتهاء يتبع العرف نفسه: شهر وسنة في المستقبل، متسقان في الدفعة بأكملها. هذا الاتساق هو ما يجعل مجموعة النماذج قابلة للاستخدام؛ فالاختبار الذي يقارن رقما بتاريخ يتوقع أن يبقى الزوج صالحا ما دامت المجموعة مستخدمة، وهذا سبب من أسباب إبقاء البيانات المنشأة صحيحة بنيويا وغير مصدرة بدل اختلاق قيم يدويا.

وإذا احتجت عدة بطاقات تشترك في تاريخ انتهاء واحد، فأنشئ دفعة واختر منها بدل إعادة كتابة التاريخ، لأن سنة واحدة مكتوبة خطأ يصعب رصدها في ملف نماذج. وتغطي قائمة اختبار نموذج الدفع مجموعة المسارات الأوسع حول هذا الحقل، ويشرح دليل رمز الأمان المحارف الأربعة الأخرى التي يقرؤها العميل من البطاقة.

الخطوات التالية

قرر كتابة ما الذي يعنيه تاريخ الانتهاء في نظامك: شهر، أم يوم أول، أم لحظة أخيرة، وضع التحويل خلف دالة واحدة. ثم أضف اختبارات الحدود الأربعة الموصوفة أعلاه، بما فيها حالة السنة الكبيسة، وتأكد أن بطاقة مطبوعة بالشهر الحالي ما زالت مقبولة في يومها الأخير.

تابع القراءة

أدلة منشئ أرقام بطاقات ائتمان وهمية (بطاقات اختبار)