Skip to main content

نظرة عامة

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

آلة الحالات

كل انتقال يمكن أن تقوم به المعاملة:SUCCESS وFAILED وREFUNDED حالات نهائية — لا تغادرها المعاملة أبداً.

الإعدادات الموصى بها

هذه نقاط انطلاق وليست ضمانات. قِس حركة مرورك الخاصة وعدّل بناءً عليها.
“التوقف” يعني إيقاف الاستطلاع في المقدّمة، لا “اعتبار أن الدفع فشل”. المعاملة التي توقفت عن مراقبتها لا تزال لها نتيجة حقيقية؛ انقلها إلى مهمة مطابقة خلفية تواصل التحقق.
زِد الفاصل الزمني تدريجياً بدلاً من إرهاق الخدمة بفاصل ثابت. الدفعة التي لم تنتهِ خلال ثلاث ثوانٍ لن تنتهي أسرع لأنك سألت مجدداً.

مستطلِع جاهز للإنتاج

الشكل نفسه بأربع لغات: فاصل زمني أولي، وتزايد حتى سقف معيّن، ومهلة إجمالية، وفرع واحد لكل حالة.

التصرّف عند كل حالة

فرع واحد لكل حالة، ودون فرع افتراضي يفترض الفشل.

التعامل مع UNKNOWN

UNKNOWN تعني أن النتيجة لم تتأكد بعد. ليست فشلاً وليست نجاحاً. وتُحسم من تلقاء نفسها إلى SUCCESS أو REFUNDED.
طالما أن المعاملة في حالة UNKNOWN:
  • لا تسترد المبلغ لعميلك أبداً.
  • لا تُعِد إرسال الدفعة أبداً.
  • لا تعرض “فشل الدفع” في واجهتك أبداً.
أي فعل من هذه يحوّل دفعة غير مؤكدة إلى خسارة مؤكدة — فإما أن تسترد قيمة فاتورة دُفعت فعلاً، وإما أن تدفعها مرتين.
ما ينبغي فعله بدلاً من ذلك:
1

احجز أموال العميل

أبقِ المبلغ محجوزاً لديك واعرض حالة محايدة — “جارٍ تأكيد الدفع”، لا “فشل”.
2

أبطئ الاستطلاع كثيراً

انتقل إلى وتيرة كل 30 ثانية، أو إلى مهمة خلفية تتحقق دورياً. الاستطلاع المتكرر لا يُسرّع المراجعة.
3

تصرّف عند الحسم فقط

SUCCESS — سوِّ العملية واحتفظ بالإيصال. REFUNDED — حرّر الأموال. عندها فقط أخبر العميل.

التعامل مع REFUNDED

REFUNDED تعني أن الدفعة خُصمت ثم أُعيدت بالكامل. النتيجة بالنسبة للعميل هي نفسها كما في FAILED — الفاتورة غير مدفوعة — لكن محاسبتك تختلف: المال خرج ثم عاد، لذا تنتمي الحركتان كلتاهما إلى دفتر حساباتك.يوضّح error.code سبب عدم ثبات الدفع:تظهر الأكواد الأربعة نفسها مع FAILED. تفرّع بناءً على code، ولا تتفرّع بناءً على message أبداً.

التعامل مع الأخطاء العابرة أثناء الاستطلاع

فشل استطلاع لا يعني معاملة فاشلة.
لا تدع استطلاعاً فاشلاً يغيّر حالة طلبك أبداً. لا يجوز ذلك إلا لقيمة status حقيقية آتية من قراءة ناجحة.

ما لا يجب فعله أبداً

أفضل الممارسات

مستطلِع واحد لمعاملة واحدة

تابع المعاملة بمعرّفها. أما سرد المعاملات مراراً للعثور عليها فأبطأ وأثقل.

زِد الفاصل الزمني تدريجياً

ابدأ ببضع ثوانٍ ثم تدرّج إلى نحو عشر. أبطئ إلى 30 ثانية بمجرد أن تصبح المعاملة UNKNOWN.

سلّم المهمة ولا تستسلم

عند انتهاء مهلة الاستطلاع في المقدّمة، أضف المعاملة إلى طابور المطابقة الخلفية.

سجّل requestId

كل استطلاع يُعيد واحداً. احتفظ بآخر واحد مع طلبك — فهو ما يحتاجه الدعم.

الخطوة التالية

الخطوة 5: الإيصالات والمطابقة

خزّن إثبات الدفع وطابق دفتر حساباتك يومياً

صفحات ذات الصلة

الحصول على معاملة بالمعرّف

كائن المعاملة ومصفوفة الحقول

استراتيجيات الاستطلاع

إرشادات الاستطلاع لجميع المنتجات

دفع الفواتير

ما ينبغي فعله قبل الدفع

اختبار Sandbox

أعد إنتاج UNKNOWN وREFUNDED عند الطلب