جسر ألفابتللمدفوعات التوثيق
المفاهيم

الحالات

كل حالات الدفعة، والتغييرات الممكنة بينها، والحدث الذي يرسله كل تغيير.

لكل دفعة دائماً حالة واحدة status:

الحالة المعنى نهائية؟
pending أُنشئت وتنتظر أن يدفع العميل. لا
paid أكد المزوّد الدفع. سلّم الطلب. لا، يمكن استردادها
failed رُفضت البطاقة أو رفض المزوّد الدفع. نعم، ما لم تضبطها ألفابت يدوياً
cancelled ألغاها العميل أو خادمك أو ألفابت قبل الدفع. تقريباً، راجع أدناه
expired لم يدفع أحد قبل expires_at. نعم، ما لم تضبطها ألفابت يدوياً
partially_refunded مدفوعة، واستُرد جزء من المبلغ. لا
refunded مدفوعة، واستُرد المبلغ كاملاً. نعم

التغييرات الممكنة

من إلى الحدث
pending paid payment.paid
pending failed payment.failed
pending cancelled payment.cancelled
pending expired payment.expired
paid partially_refunded payment.partially_refunded
paid refunded payment.refunded
partially_refunded partially_refunded (استرداد جزئي آخر) payment.partially_refunded
partially_refunded refunded payment.refunded
cancelled، أو failed/expired ضبطتها ألفابت يدوياً (حتى موعد expires_at الأصلي) paid payment.paid

كل تغيير يرسل إشعار Webhook واحداً بالضبط. راجع إشعارات Webhook.

الدفع بعد الإغلاق

لا يمكن إغلاق صفحة البطاقة لدى المزوّد من الخارج، لذلك يستطيع العميل دفع دفعة سبق أن أغلقها الجسر. ويشمل ذلك الدفعة الملغاة عبر الواجهة البرمجية، والدفعة التي ضبطتها ألفابت يدوياً على failed أو expired. يواصل الجسر التحقق من هذه الدفعة حتى موعد expires_at الأصلي، فإن أبلغ المزوّد أنها مدفوعة تصبح paid ويصلك payment.paid.

بما أن المال قد اقتُطع، فعلى تطبيقك عندها أن يسلّم الطلب أو يسترد المبلغ. وتظهر هذه الدفعات لدى ألفابت معلَّمة للمراجعة.

أما الدفعات التي رفضها المزوّد نفسه أو انتهت لديه فهي نهائية.

المبالغ والاسترداد

refunded_amount هو مجموع كل الاستردادات المؤكدة بالدينار، والمبلغ الذي ما زال قابلاً للاسترداد هو amount − refunded_amount. طلب الاسترداد الفعلي الذي لم يُؤكَّد بعد لا يغيّر الحالة ولا refunded_amount، راجع الاسترداد.

انتهاء المهلة

تنتهي الدفعة غير المدفوعة بعد 30 دقيقة من إنشائها افتراضياً، ويمكن لألفابت ضبط مدة مختلفة لكل تطبيق. الوقت الدقيق هو expires_at في الدفعة. يتحقق الجسر من الدفعات المعلّقة لدى المزوّد مرة في الدقيقة تقريباً، لذلك قد تصل حالة expired وإشعارها بعد expires_at ببضع دقائق.