التحقق من توقيع Webhook & عدم تكرار المعالجة

تحقق 6MM الوكيل يربط webhook مع جسم الطلب الخام وقم بمعالجة عمليات إعادة الاستخدام، وانتهاء المهلات، والأحداث المتكررة دون تكرار إجراءات العمل.

View as Markdown

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

رؤوس Webhook

الرأسالوصف
طابع الزمني X-Agentطابع زمني ليونكس في ثوان.
إكس-إيجنت-نونسحماية إعادة اللعب.
توقيع العميل XHMAC- توقيعSHA256 .
timestamp + nonce + rawBody

استخدم جسم الطلب الخام المستلم عبر HTTP عند إعادة بناء القيمة الموقعة. تحليل وإعادة تسلسل JSON أولا يمكن أن يغير المساحة البيضاء أو ترتيب الحقول وينتج توقيعا مختلفا.

تدفق التحقق

  1. اقرأ الطابع الزمني والنونس والرؤوس التوقيعية.
  2. التقاط جسم الطلب الخام غير المعدل.
  3. بناء timestamp + nonce + rawBody.
  4. احسب HMAC-SHA256 مع الشريك API السر.
  5. مقارنة التواقيع المحسوبة والاستلمامة باستخدام مقارنة زمنية ثابتة.
  6. تطبيق فحوصات الطابع الزمني المعتمد للحداثة وعدم إعادة الاستخدام.
  7. تحليل ومعالجة الحدث فقط بعد نجاح التحقق.

عندما يتوفر متحقق رسمي Agent SDK ، استخدمه بدلا من الحفاظ على رمز توقيع مستقل.

القدرة على الأمر

القضيةالتحكم
طلب النقل الأوليأنشئ نموذجا فريدا عالميا agentOrderNo.
HTTP وقت مستقطعاستفسر عن agentOrderNo الأصلي قبل إنشاء جديد.
PROCESSING الردانتظر حالة webhook أو طلب الاستعلام.
تكرار الشبكةإزالة التكرار حسب مفتاح الهوية والحالة النهائية.

تخزين معلومات كافية للتعرف على تكرار التسليم واستعادة العدوى بأمان:

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

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

قاعدة الوقت المستقطع وإعادة المحاولة

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

قائمة تحقق الإنتاج

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