هل سبق أن تعرضت لخصم مالي مضاعف أو طلب مكرر بسبب خطأ في الإنترنت؟ يوضح هذا المقال كيف يمكن لـ«مفاتيح الثبات» أن تحمي أنظمة الدفع والتسوق عبر الإنترنت من هذه المشاكل الخفية.
تخيل أنك تطلب وجبتك المفضلة عبر الإنترنت. تضغط على زر 'ادفع'، ولكن قبل أن ترى رسالة 'تم تأكيد طلبك'، ينقطع اتصال الإنترنت للحظة. ماذا تفعل؟ غالبًا ما تضغط على الزر مرة أخرى، أو قد يقوم التطبيق بمحاولة الدفع مرة أخرى تلقائيًا. هذا بالضبط هو السيناريو الذي يمكن أن يؤدي إلى ما يُعرف بـ'الخطأ الصامت' الذي تتحدث عنه الأخبار في عالم البرمجة. يمكن أن يتسبب هذا الخطأ في مشكلات كبيرة، مثل خصم مبلغ الوجبة مرتين من حسابك أو إرسال طلبين لنفس الوجبة بدلاً من واحد!
لماذا يحدث هذا؟ عندما لا يتلقى النظام استجابة واضحة من محاولته الأولى (ربما بسبب بطء الشبكة أو انقطاعها للحظة)، فإنه يفترض أن المحاولة فشلت ويقوم بإعادة المحاولة. هذه إعادة المحاولة مفيدة جدًا في بعض الحالات، مثل محاولة قراءة البيانات. إذا فشلت محاولة عرض صفحة المنتج، فلا مشكلة في محاولة عرضها مرة أخرى. ولكن عندما يتعلق الأمر بإجراء يغير شيئًا ما، مثل إنشاء طلب أو معالجة دفعة مالية، فإن إعادة المحاولة تصبح خطيرة. إذا نجحت المحاولة الأولى بالفعل ولكنك لم تستقبل التأكيد، فإن إعادة المحاولة تعني تنفيذ الإجراء مرتين.
هنا يأتي دور 'مفاتيح الثبات' لإنقاذ الموقف. فكر فيها كأنها رقم سري فريد تعطيه لكل 'نية' لإجراء عملية معينة. على سبيل المثال، عندما تنوي دفع فاتورة معينة، يقوم هاتفك بتوليد رقم فريد (مثل 'رقم نية الدفع: 12345'). عندما ترسل طلب الدفع، يتم إرسال هذا الرقم معه. إذا لم تستقبل تأكيدًا وقام التطبيق بإعادة المحاولة (أو قمت أنت بالضغط مرة أخرى)، فسيتم إرسال نفس 'رقم نية الدفع: 12345' مرة أخرى. عندما يستقبل البنك هذا الطلب الثاني بنفس الرقم، فإنه يفهم أن هذه ليست عملية دفع جديدة، بل هي إعادة محاولة لنفس العملية الأصلية. يقوم البنك حينها إما بتجاهل الطلب المكرر أو يرسل لك ببساطة نتيجة المحاولة الأولى الناجحة، دون خصم المبلغ مرة أخرى.
ببساطة، مفتاح الثبات يضمن أن العملية الواحدة تنفذ مرة واحدة فقط، حتى لو تم إرسال طلبها عدة مرات. هذا يمنع الأخطاء المحبطة مثل الدفع المزدوج أو الطلبات المكررة ويجعل استخدام تطبيقاتنا أكثر أمانًا وموثوقية.
لماذا يحدث هذا؟ عندما لا يتلقى النظام استجابة واضحة من محاولته الأولى (ربما بسبب بطء الشبكة أو انقطاعها للحظة)، فإنه يفترض أن المحاولة فشلت ويقوم بإعادة المحاولة. هذه إعادة المحاولة مفيدة جدًا في بعض الحالات، مثل محاولة قراءة البيانات. إذا فشلت محاولة عرض صفحة المنتج، فلا مشكلة في محاولة عرضها مرة أخرى. ولكن عندما يتعلق الأمر بإجراء يغير شيئًا ما، مثل إنشاء طلب أو معالجة دفعة مالية، فإن إعادة المحاولة تصبح خطيرة. إذا نجحت المحاولة الأولى بالفعل ولكنك لم تستقبل التأكيد، فإن إعادة المحاولة تعني تنفيذ الإجراء مرتين.
هنا يأتي دور 'مفاتيح الثبات' لإنقاذ الموقف. فكر فيها كأنها رقم سري فريد تعطيه لكل 'نية' لإجراء عملية معينة. على سبيل المثال، عندما تنوي دفع فاتورة معينة، يقوم هاتفك بتوليد رقم فريد (مثل 'رقم نية الدفع: 12345'). عندما ترسل طلب الدفع، يتم إرسال هذا الرقم معه. إذا لم تستقبل تأكيدًا وقام التطبيق بإعادة المحاولة (أو قمت أنت بالضغط مرة أخرى)، فسيتم إرسال نفس 'رقم نية الدفع: 12345' مرة أخرى. عندما يستقبل البنك هذا الطلب الثاني بنفس الرقم، فإنه يفهم أن هذه ليست عملية دفع جديدة، بل هي إعادة محاولة لنفس العملية الأصلية. يقوم البنك حينها إما بتجاهل الطلب المكرر أو يرسل لك ببساطة نتيجة المحاولة الأولى الناجحة، دون خصم المبلغ مرة أخرى.
ببساطة، مفتاح الثبات يضمن أن العملية الواحدة تنفذ مرة واحدة فقط، حتى لو تم إرسال طلبها عدة مرات. هذا يمنع الأخطاء المحبطة مثل الدفع المزدوج أو الطلبات المكررة ويجعل استخدام تطبيقاتنا أكثر أمانًا وموثوقية.