عدم التكرار في المدفوعات
كل الطرق التي يجعل بها HyoNova Commerce الطلبات المكررة والـWebhooks المُعادة والعمّال المتزامنين آمنة — المفاتيح والسجلات الفريدة والنسخ والإشعارات لمرة واحدة.
لا تظهر طريقة الدفع إلا بعد أن يُعدّ HyoNova مزوّد الدفع الخاص بها.
تُعاد محاولات المدفوعات من المتصفحات والشبكات والمزوّدين والعمّال. وقد بُني HyoNova Commerce بحيث يكون لتنفيذ الشيء مرتين أثر تنفيذه مرة واحدة.
مفاتيح الطلبات#
ترسل إجراءات المال التي قد يعيد العميل محاولتها ترويسة Idempotency-Key من 16 إلى 100 حرف (حروف وأرقام و_ . : -). ويُرفض المفتاح الناقص أو غير الصحيح بالرمز IDEMPOTENCY_KEY_REQUIRED.
| الإجراء | فريد لكل | التكرار يعيد |
|---|---|---|
| بدء عملية دفع | شركة + مفتاح | عملية الدفع التي أُنشئت بالفعل |
| تأكيد دفعة بنكية | شركة + مفتاح | الدفعة المسجلة بالفعل |
| طلب استرداد | شركة + مفتاح | الاسترداد المطلوب بالفعل (ويُرفض مفتاح أعيد استخدامه لدفعة أخرى) |
السجلات الفريدة#
| الضمانة | الأثر |
|---|---|
| عملية دفع مفتوحة واحدة لكل شركة | تُرفض عملية دفع ثانية أثناء وجود أخرى مفتوحة بالرمز CHECKOUT_IN_PROGRESS |
| مفتاح حدث المزوّد (المزوّد، معرّف الحدث) | الـWebhook المُعاد duplicate |
| مراجع المزوّد للدفعات والطلبات والفواتير والاستردادات | لا يُسجَّل كائن المزوّد نفسه مرتين أبداً |
| استرداد مفتوح واحد لكل دفعة | REFUND_ALREADY_EXISTS |
| مفتاح السجل الزمني للفوترة لكل شركة | لا يُسجَّل التغيير نفسه — ولا يُشعَر به — مرتين أبداً |
| رسالة بريد واحدة لكل حدث ومستلم | لا يُرسل إشعار الفوترة بالبريد إلى الشخص نفسه مرتين |
| أرقام الفواتير | تؤخذ تحت قفل صف: لا تُتخطى ولا تتكرر أبداً |
الاستدعاءات إلى المزوّدين#
يمرّر HyoNova معرّفاته الخاصة مفاتيحَ عدم تكرار إلى المزوّدين — معرّف عملية الدفع لعملية الدفع، ومعرّف الاسترداد للاسترداد، ومفاتيح بصيغة <subscription>:<version> لتغييرات الاشتراك وإلغائه واستئنافه. ولا تُعاد محاولة الاستدعاءات الخارجية إلا حين يكون تكرارها آمناً: القراءات، أو الكتابات التي يمنع المزوّد تكرارها بالمفتاح.
النسخ#
تحمل تغييرات الاشتراك والفاتورة وملف الفوترة والمزوّد والتوجيه النسخة التي قرأها المستدعي آخر مرة. وتُرفض النسخة القديمة (SUBSCRIPTION_CONFLICT أو RESOURCE_VERSION_CONFLICT) فلا يكتب شخصان فوق تغيير بعضهما أبداً.
العمّال#
تعمل صيانة الفوترة في عامل واحد في كل مرة (قفل استشاري في قاعدة البيانات) ومرة في الدقيقة على الأكثر؛ وكل تغيير تجريه يستخدم مفاتيح السجل الزمني نفسها، فالتشغيل المكرر لا يغيّر شيئاً.
هل كانت هذه الصفحة مفيدة؟
شكراً. لا تُجمع تقييمات الصفحات بعد، لذلك لم يُرسَل شيء. إذا وجدت نقصاً أو خطأً فراجع صفحة «الحصول على المساعدة».