التحقق من توقيع Webhook & عدم تكرار المعالجة
التحقق من توقيع Webhook & عدم تكرار المعالجة
تحقق 6MM الوكيل يربط webhook مع جسم الطلب الخام وقم بمعالجة عمليات إعادة الاستخدام، وانتهاء المهلات، والأحداث المتكررة دون تكرار إجراءات العمل.
تقوم Webhooks بإبلاغ الطرف الخلفي الشريك عن التغيرات غير المتزامنة في حالة الأعمال. نظرا لأن إعادة التسليم قد تتم إعادة تجربته، يجب على كل مستقبل التحقق من التوقيع قبل تحليل البيانات الموثوقة ويجب عليه معالجة الحدث بشكل متكامل.
رؤوس Webhook
استخدم جسم الطلب الخام المستلم عبر HTTP عند إعادة بناء القيمة الموقعة. تحليل وإعادة تسلسل JSON أولا يمكن أن يغير المساحة البيضاء أو ترتيب الحقول وينتج توقيعا مختلفا.
تدفق التحقق
- اقرأ الطابع الزمني والنونس والرؤوس التوقيعية.
- التقاط جسم الطلب الخام غير المعدل.
- بناء
timestamp + nonce + rawBody. - احسب HMAC-SHA256 مع الشريك API السر.
- مقارنة التواقيع المحسوبة والاستلمامة باستخدام مقارنة زمنية ثابتة.
- تطبيق فحوصات الطابع الزمني المعتمد للحداثة وعدم إعادة الاستخدام.
- تحليل ومعالجة الحدث فقط بعد نجاح التحقق.
عندما يتوفر متحقق رسمي Agent SDK ، استخدمه بدلا من الحفاظ على رمز توقيع مستقل.
القدرة على الأمر
سجل المقاومة الذاتية الموصى به
تخزين معلومات كافية للتعرف على تكرار التسليم واستعادة العدوى بأمان:
قم بتسجيل التغيير التجاري وسجل الهوية في نفس المعاملة حيثما أمكن. يجب أن يعيد الحدث المتكرر النتيجة المعروفة مسبقا بدلا من تطبيق الرصيد أو الأمر أو تغيير المستخدم مرة أخرى.
قاعدة الوقت المستقطع وإعادة المحاولة
مهلة HTTP لا تثبت فشل الطلب الأصلي. استفسر عن العملية باستخدام agentOrderNoالأصلي، أو انتظر الرابط الإلكتروني الخاص به، قبل أن تقرر ما إذا كان هناك حاجة لإجراء آخر. إنشاء رقم أمر تجاري جديد بعد كل مهلة نهاية قد يسبب تحركات أموال مكررة.
قائمة تحقق الإنتاج
- التحقق من التوقيع قبل JSON التحليل أو المعالجة التجارية.
- الحفاظ على الجسم الخام بشكل مستقل عن الحمولة المحللة.
- رفض الطلبات القديمة أو المعاد تشغيلها وفقا لسياسة التكامل المعتمدة.
- جعل معالجة الأحداث آمنة للتسليم المتكرر أو خارج الطلب.
- تسجيل معرفات الأحداث، أرقام أوامر الشركاء، نتائج المعالجة، ووقت الطلب.
- حجب الأسرار وقيم التوقيع من السجلات والمرفقات الداعمة.