HyoNovaالتوثيق

Webhooks المدفوعات

كيف يستقبل HyoNova Webhooks مزوّدي الدفع — الجسم الخام، والتحقق من التوقيع، ومنع التكرار، والترتيب، والمعالجة الذرية، وأي ردود HTTP تجعل المزوّد يعيد المحاولة.

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

لا تظهر طريقة الدفع إلا بعد أن يُعدّ HyoNova مزوّد الدفع الخاص بها.

يُبلغ مزوّدو الدفع HyoNova بالمدفوعات والاشتراكات باستدعاء Webhook. وهذه الـWebhooks — لا عودة المتصفح من صفحة الدفع — هي ما يغيّر اشتراك الشركة. تصف هذه الصفحة جانب الاستقبال. (أما الـWebhooks التي يرسلها هيو ميل إلى أنظمتك أنت فراجع Webhooks.)

نقطة الاستقبال#

text
POST https://<HyoNova product API host>/api/v1/webhooks/payments/<provider>

<provider> هو مسار Webhook المزوّد: fastspring أو triple-a أو stripe. وليس للتحويل البنكي Webhook. ويعرض مركز التحكم العنوان الدقيق على كل نسخة مزوّد. والمسارات غير المعروفة تُرد بـ404، والجسم الفارغ بـ400. والجسم محدود بـ512 كيلوبايت، ونقطة الاستقبال محدودة المعدّل.

المعالجة خطوة بخطوة#

  1. الجسم الخام. يُقرأ الجسم بايتات خاماً لأن التوقيع يغطي البايتات نفسها تماماً. ولا يحدث أي تحليل JSON قبل التحقق.
  2. التوقيع. يجرّب HyoNova كل نسخة من نسخ ذلك المزوّد (يمكن أن تتعايش نسختا الاختبار والإنتاج) بسرّ توقيعها، بمقارنة ثابتة الزمن. وإن لم تتطابق أي نسخة ← 401 WEBHOOK_SIGNATURE_INVALID ولا يُخزَّن شيء.
  3. التوحيد. يحوّل المحوّل الحمولة إلى أحداث موحّدة مستقلة عن المزوّد. وقد ينتج الإشعار الواحد عدة أحداث.
  4. منع التكرار. يُسجَّل كل حدث بمفتاحه (المزوّد، معرّف الحدث). والمفتاح الذي عولج سابقاً duplicate ولا يغيّر شيئاً.
  5. فحص البيئة. الحدث التجريبي لا يغيّر أبداً بيانات نسخة حقيقية، والعكس كذلك.
  6. مطابقة الشركة من مراجع خزّنها HyoNova بنفسه (عملية الدفع أو الاشتراك أو الدفعة أو الطلب أو الفاتورة أو عميل المزوّد). ولا يُوثق بالمعرّفات التي يعيدها المزوّد إلا حين تطابق سجلاً مخزّناً.
  7. الترتيب. الحدث الأقدم من آخر حدث طُبّق على الاشتراك — برقم تسلسل المزوّد حين يتوفر، وإلا بالوقت — يُتجاهل ولا يُرجع الاشتراك إلى الوراء أبداً.
  8. التطبيق الذري. يُثبَّت التغيير ومدخل السجل الزمني لفوترة الشركة وحدث الـoutbox للإشعارات ومدخل التدقيق معاً في معاملة واحدة.

التواقيع#

المزوّدالترويسةالمحتوى الموقّع
FastSpringX-FS-SignatureHMAC-SHA256 بترميز Base64 للجسم الخام بسرّ HMAC الخاص بالـWebhook
Triple-ATriplea-Signature: t=<unix>,v1=<hex>HMAC-SHA256 لـ <t>.<raw body> بسرّ الإشعارات؛ سماحية 300 ثانية
StripeStripe-Signature: t=<unix>,v1=<hex>HMAC-SHA256 لـ <t>.<raw body> بسرّ نقطة الاستقبال؛ سماحية 300 ثانية

ردود HTTP#

الردمتىسلوك المزوّد
200عولج كل حدث أو تُجوهل أو كان مكرراً. ويذكر الجسم معرّفات الأحداث المعالجةانتهى
401لم تتحقق أي نسخة من التوقيعلا يُخزَّن شيء؛ أصلح السر
500 PROCESSING_FAILEDفشل حدث واحد على الأقل، ويُخزَّن فاشلاً مع خطأ آمنيعيد المزوّد المحاولة؛ تُمنع إعادة الأحداث المعالجة ويُعاد تشغيل الفاشل
404 / 400مسار مزوّد غير معروف / جسم فارغ—

ملاحظات أمنية#

  • لا توجد جلسة أو ملف تعريف ارتباط. ويُتجاوز فحص CSRF لنمط هذا المسار تحديداً فقط؛ والتوقيع هو المصادقة.
  • تُقرأ الأسرار من مخزن الأسرار للتحقق فقط، ولا تُسجَّل أبداً.
  • الأحداث التي تبقى فاشلة تظهر في المطابقة في مركز التحكم عناصرَ تحتاج انتباهاً.
↑↓ للتنقل · Enter للفتح · Esc للإغلاق