أكثر من طلب إلى بوابة الدفع
شمل عملي باستخدام Java وSpring في Prokoders خدمات الدفع والتحصيل وإشعارات webhooks وروابط الدفع والتحقق ومعالجة الأخطاء بمرونة. هذه مراحل مترابطة وليست طلبات مستقلة. قد يغلق المتصفح بعد الدفع أو تتأخر استجابة المزود أو يصل حدث أثناء معالجة طلب آخر. يحتاج التطبيق إلى تعريف واضح لحالة الدفعة خلال هذه الانتقالات.
تمثيل عدم اليقين بوضوح
انتهاء المهلة لا يثبت فشل الدفعة؛ فقد يعني أن التطبيق لم يتلق النتيجة. ميّز الفشل المؤكد عن العملية غير المحسومة وحدد طريقة المطابقة. احتفظ بمعرفات المزود إلى جانب المعرفات الداخلية لربط الأحداث والفحوصات اللاحقة بالعملية نفسها. يجب أن تتبع الحالات وانتقالاتها عقد المزود ومسار العمل الفعلي.
جعل معالجة التكرار قابلة للاختبار
قبل الاعتماد على webhooks، حدد كيفية التحقق من أصالتها ومعالجة وصولها المتكرر. اختبر الإشعار مرتين وتأكد من عدم تكرار إجراء العمل، ثم اختبر إشعاراً متأخراً بعد انتهاء مهلة سابقة. يفحص اختبار القبول المفيد المعاملة المخزنة والسجل المرتبط بها وليس استجابة HTTP فقط، لضمان صحة المسار بأكمله.