رجوع

VibeFox Xendit for OpenCart — المساعدة

المتطلبات

OpenCart: 3.0.x (تم اختباره على 3.0.5.0) أو 4.0.2 وما بعده (تم اختباره على 4.1.0.3).

PHP: 8.0 أو أحدث.

عملة المتجر: IDR أو PHP أو VND أو THB أو MYR أو USD أو SGD. لا تظهر طريقة الدفع لعملات الدفع الأخرى. ما هي قنوات الدفع والعملات المتاحة فعلًا يعتمد على حسابك لدى Xendit.

حساب Xendit: تحتاج إلى مفتاح API سري بصلاحية الكتابة لـ Money-in (الفواتير) لوضع الاختبار، ومفتاح آخر لوضع الإنتاج، إضافةً إلى رمز التحقق من الـ webhook لكل وضع (انظر الإعدادات). يُستخدم المفتاح السري ورمز التحقق فقط. لا يلزم أي مفتاح عام، لأن العميل يدفع في صفحة الفاتورة التي تستضيفها Xendit.

مفتاح ترخيص VibeFox: يُشترى من vibefox.net. يعمل مفتاح واحد على نطاق واحد.

التثبيت

التنزيل ملف zip واحد يحتوي على الحزم لكلا إصداري OpenCart. فُكّ ضغطه على حاسوبك. يحتوي على README.txt وحزمة OpenCart 3 wcp_xendit_payment_gateway-oc3-(version).ocmod.zip وحزمة OpenCart 4 wcp_xendit_payment_gateway.ocmod.zip. ثبّت فقط الحزمة الخاصة بإصدار OpenCart لديك. مفتاح الترخيص هو نفسه لكلا الإصدارين.

OpenCart 3

1. في لوحة الإدارة، انتقل إلى Extensions > Installer، وانقر على Upload، ثم اختر الملف wcp_xendit_payment_gateway-oc3-(version).ocmod.zip. لا تحتوي الإضافة على تعديلات OCMOD، لذلك لا تحتاج Extensions > Modifications إلى تحديث. بدلًا من أداة التثبيت يمكنك نسخ محتويات المجلد upload الموجود في هذه الحزمة إلى المجلد الجذر لمتجرك.

2. انتقل إلى Extensions > Extensions واختر النوع Payments. ابحث عن VibeFox Xendit Payment Gateway وانقر على Install (زر + الأخضر). يحتاج مستخدم الإدارة لديك إلى صلاحية تعديل قائمة إضافات الدفع.

3. انقر على Edit (زر القلم) لفتح صفحة الإعدادات. أدخل مفتاح ترخيص VibeFox في الحقل License key في كتلة الترخيص أعلى الصفحة، ثم انقر على Activate (انظر مفتاح الترخيص).

4. الصق مفاتيح Xendit السرية، واضبط عنوان URL الخاص بالـ webhook في Xendit Dashboard، والصق رموز التحقق (انظر الإعدادات).

5. فعّل Enable/Disable وانقر على Save. أجرِ طلب اختبار في وضع الاختبار، ثم أوقف Test Mode لقبول المدفوعات الحقيقية.

OpenCart 4

1. في لوحة الإدارة، انتقل إلى Extensions > Installer، وانقر على Upload، ثم اختر الملف wcp_xendit_payment_gateway.ocmod.zip. لا تُغيّر اسم الملف: يأخذ OpenCart 4 رمز الإضافة من اسم الملف، والحزمة التي يُغيَّر اسمها لا تعمل.

2. تظهر الحزمة في قائمة الإضافات المثبتة في الصفحة نفسها. انقر على Install (زر + الأخضر) بجانبها.

3. انتقل إلى Extensions > Extensions واختر النوع Payments. ابحث عن VibeFox Xendit Payment Gateway، وانقر على Install (زر + الأخضر)، ثم على Edit (زر القلم).

4. أدخل مفتاح الترخيص ومفاتيح Xendit والـ webhook كما في الخطوات من 3 إلى 5 لـ OpenCart 3. صفحة الإعدادات وحقولها متطابقة في الإصدارين. عنوان الـ webhook هو الوحيد المختلف (انظر Webhooks).

تبدأ التثبيتات الجديدة بطريقة الدفع متوقفة ووضع الاختبار مفعّلًا.

الإعدادات

جميع الإعدادات موجودة في صفحة الإضافة: Extensions > Extensions > Payments > VibeFox Xendit Payment Gateway > Edit. تُدرج الأقسام على اليسار؛ يحفظ الزر Save الموجود أسفل القائمة الصفحة كاملة. بدون صلاحية تعديل الإضافة تعرض الصفحة الإعدادات لكنها لا تستطيع حفظها.

يعرض مربع فوق الإعدادات الوضع النشط: TEST MODE (تُنشأ الفواتير بالمفتاح السري للاختبار؛ ولا يُحصَّل أي مال حقيقي) أو LIVE MODE (تُنشأ الفواتير بالمفتاح السري للإنتاج ويُحصَّل المبلغ من العملاء). تحذّرك الصفحة عندما يكون المفتاح السري للوضع النشط مفقودًا أو ذا بادئة خاطئة (فتُخفى طريقة الدفع حينها في صفحة الدفع)، وعندما يكون رمز التحقق من الـ webhook للوضع النشط فارغًا (فتُرفض إشعارات Xendit، ولا تُحدَّث الطلبات إلا عندما يعود العميل إلى متجرك).

عند الحفظ، لا يجوز أن يكون Title فارغًا (بحد أقصى 128 حرفًا)، ويجب أن يكون Sort Order عددًا صحيحًا (الأعداد السالبة مسموحة)، ويجب أن يكون Total رقمًا يساوي 0 أو أكبر، ويجب أن توجد المنطقة الجغرافية وحالات الطلب. وإلا فلن يُحفظ شيء، وتذكر الصفحة الحقل المعني.

Xendit

Enable/Disable: تفعّل Enable Xendit طريقة الدفع أو توقفها. الافتراضي: off.

Title: اسم طريقة الدفع الذي يراه العملاء في صفحة الدفع. وهو أيضًا اسم طريقة الدفع المحفوظ في الطلب. الافتراضي: Xendit. مطلوب، بحد أقصى 128 حرفًا.

Description: النص الذي يظهر للعميل في خطوة Confirm Order، فوق زر التأكيد. الافتراضي: Pay with virtual accounts, e-wallets, QR codes, retail outlets or cards via Xendit.

Sort Order: موضع Xendit بين طرق الدفع في صفحة الدفع. اتركه فارغًا أو أدخل عددًا صحيحًا.

Geo Zone: اعرض Xendit فقط لعناوين الدفع الواقعة ضمن المنطقة الجغرافية المحددة. الافتراضي: All zones. تُعدّ المناطق الجغرافية في System > Localisation > Geo Zones.

Total: إجمالي الدفع، بعملة المتجر الافتراضية، الذي يجب أن يصل إليه الطلب قبل عرض Xendit. اتركه فارغًا لعرض Xendit لأي إجمالي.

مفاتيح API

أنشئ مفتاح API سريًا بصلاحية الكتابة لـ Money-in (الفواتير) في Xendit Dashboard > Settings > Developers > API keys (يحتوي القسم على رابط إلى ذلك)، مرة في وضع الاختبار ومرة في وضع الإنتاج. يحدد المفتاح مكان إنشاء الفاتورة. عند الحفظ، لا يُحفظ المفتاح الذي لا يبدأ ببادئة حقله، وتعرض الصفحة مثلًا Test secret key was not saved: it must start with xnd_development_. تُحفظ الإعدادات الأخرى.

Test Mode: ينشئ الفواتير بالمفتاح السري للاختبار، لذلك لا يُحصَّل أي مال حقيقي. الافتراضي: on. أوقفه لقبول المدفوعات الحقيقية بالمفتاح السري للإنتاج. وطالما هو مفعّل يرى العملاء Test mode: no real money is charged. في خطوة Confirm Order.

Test Secret Key: المفتاح السري لوضع الاختبار في Xendit. يبدأ بالبادئة xnd_development_.

Live Secret Key: المفتاح السري لوضع الإنتاج في Xendit. يبدأ بالبادئة xnd_production_.

لا تُعرض المفاتيح والرموز المحفوظة مرة أخرى. يبقى الحقل فارغًا ويعرض Saved — leave empty to keep it. أدخل قيمة جديدة فقط عند الرغبة في تغييرها. لحذف قيمة محفوظة، ضع علامة على Clear the saved value أسفل الحقل، ثم انقر على Save.

Webhooks

يُخبر الـ webhook متجرك بأن فاتورة قد دُفعت. في Xendit Dashboard > Settings > Developers > Webhooks (يحتوي القسم على رابط إلى ذلك)، اضبط عنوان URL المعروض في Webhook URL لـ Invoices > Invoice paid، في وضعي الاختبار والإنتاج. ويمكنك ضبطه اختياريًا لـ Invoice expired أيضًا. على OpenCart 3 يبدو عنوان URL هكذا: https://your-store/index.php?route=extension/payment/wcp_xendit_payment_gateway/webhook، وعلى OpenCart 4 هكذا: https://your-store/index.php?route=extension/wcp_xendit_payment_gateway/payment/wcp_xendit_payment_gateway.webhook ويُبنى من عنوان واجهة المتجر لتثبيت OpenCart لديك. انسخه تمامًا كما تعرضه الإعدادات. ويجب أن يكون متاحًا من الإنترنت.

Invoice paid: دفع العميل الفاتورة. يحصل الطلب على حالته بعد التحقق الموصوف أدناه.
Invoice expired: انتهت صلاحية الفاتورة دون دفع. يُغلق محاولة الدفع؛ ويمكن دفع السلة مرة أخرى.

ثم انسخ Webhook verification token لكل وضع من Xendit Dashboard إلى الحقل المطابق له. ترسله Xendit في الترويسة x-callback-token. تُرفض الإشعارات التي لا تحمل رمز الوضع الذي أُنشئت فيه الفاتورة. لا يثبت الرمز إلا أن الإشعار صادر من Xendit: يُعاد دائمًا قراءة حالة الفاتورة ومبلغها وعملتها من واجهة Xendit البرمجية باستخدام المفتاح السري لذلك الوضع. وبدون الـ webhook لا يُؤكَّد الطلب إلا عندما يعود العميل إلى المتجر بعد الدفع.

Test Webhook Verification Token: رمز التحقق من الـ webhook لوضع الاختبار في Xendit.

Live Webhook Verification Token: رمز التحقق من الـ webhook لوضع الإنتاج في Xendit.

الدفع

Invoice Description: الوصف الذي يظهر في فاتورة Xendit. يمكنك استخدام العناصر النائبة {order_id} و{order_number} (وكلاهما رقم طلب OpenCart) و{site_name} (اسم المتجر). تُحذف أكواد HTML ويُقتطع النص عند 255 حرفًا. الافتراضي: Order #{order_id}.

Order Status After Payment: الحالة التي يضبطها الدفع المؤكد، في تغيير حالة واحد.

Processing (default): يحصل الطلب على Paid Order Status.
Completed: يحصل الطلب على Complete Order Status.

ينشئ OpenCart الطلب في خطوة Confirm Order دون حالة (طلب مفقود). لا يحصل الطلب على حالة إلا بعد أن تؤكد Xendit الدفع عبر الواجهة البرمجية. يسرد كل حقل أدناه حالات طلبات OpenCart لديك.

Paid Order Status: الحالة بعد دفع مؤكد مع Processing. الافتراضي: Processing.

Complete Order Status: الحالة بعد دفع مؤكد مع Completed. الافتراضي: Complete.

On Hold (Review) Status: دُفعت فاتورة بمبلغ أو عملة مختلفين عن الطلب (تغيّرت السلة بعد إنشاء الفاتورة، أو كان الدفع جزئيًا). توضح ملاحظة السبب. الافتراضي: Pending، لأن OpenCart لا يملك حالة On hold. يمكنك إنشاء حالة خاصة بك في System > Localisation > Order Statuses واختيارها هنا.

متقدم

Debug Log: يكتب طلبات الواجهة البرمجية والـ webhooks في الملف xendit_p_debug.log.php داخل مجلد سجلات OpenCart (storage/logs). لا يمكن فتح الملف من الويب، وعند بلوغه 5 MB يُنقل إلى xendit_p_debug.old.log.php. تُسجَّل الأخطاء والتحذيرات دائمًا، حتى عندما يكون هذا الخيار متوقفًا. لا تُسجَّل المفاتيح ولا الرموز ولا بيانات العملاء. الافتراضي: off.

Log: يعرض حجم السجل وأحدث إدخالاته. انقر على Clear log لإفراغه.

Delete Data on Uninstall: عند التفعيل، يؤدي إلغاء تثبيت الإضافة إلى حذف إعدادات البوابة والسجل. تبقى بيانات الطلبات (معرّفات فواتير Xendit للطلبات) محفوظة دائمًا. الافتراضي: off.

استيراد / تصدير

Export: يحفظ Download JSON الإعدادات في ملف JSON. لا تُصدَّر المفاتيح السرية ولا الرموز.

Import: الصق ملف JSON مُصدَّرًا سابقًا وانقر على Import لاستعادة الإعدادات. تبقى المفاتيح السرية والرموز المحفوظة كما هي.

الدفع

تظهر طريقة الدفع عندما تكون عملة الدفع IDR أو PHP أو VND أو THB أو MYR أو USD أو SGD. يختارها العميل في خطوة Payment Method (افتراضيًا Xendit). في خطوة Confirm Order يرى العميل وصفك. ينشئ OpenCart الطلب في هذه الخطوة، ما زال دون حالة. عندما ينقر العميل على Confirm Order، تنشئ الإضافة فاتورة Xendit بإجمالي الطلب وبعملة الطلب، وتنقل العميل إلى صفحة فاتورة Xendit. تُقرَّب مبالغ IDR وVND إلى أعداد صحيحة، لأن Xendit لا تقبل الكسور العشرية لهذه العملات. يُمرَّر بريد العميل الإلكتروني إلى Xendit. في صفحة الفاتورة يدفع العميل بإحدى قنوات الدفع المفعّلة في حسابك لدى Xendit لهذه العملة، مثل حساب افتراضي، أو محفظة إلكترونية، أو رمز QR، أو منفذ بيع بالتجزئة، أو بطاقة. على OpenCart 4 يختار العميل وسيلة الدفع بزر Choose في كتلة وسيلة الدفع، في النافذة Payment method options، ثم ينقر على Confirm Order في أسفل صفحة الدفع.

بعد الدفع يعود العميل إلى متجرك. لا يُعلَّم الطلب كمدفوع إلا بعد أن تؤكد Xendit ذلك: عبر الـ webhook، أو عبر طلب من الخادم إلى واجهة Xendit البرمجية عندما يعود العميل. ثم يحصل الطلب على حالته بالطريقة المعيارية في OpenCart، مع رسائل الطلب المعتادة وتحديث المخزون، ويرى العميل صفحة نجاح الطلب في OpenCart. إذا لم تؤكد Xendit الدفع بعد، تعرض صفحة Payment confirmation الرسالة Your payment has not been confirmed by Xendit yet. Your order will be confirmed as soon as Xendit confirms it — please do not pay again. مع الزرين Check again وBack to checkout. ويضبط الـ webhook حالة الطلب فور وصوله.

إذا فشلت الفاتورة أو انتهت صلاحيتها، ترسل Xendit العميل إلى الخلف. تتحقق الإضافة أولًا من الفاتورة (ربما دُفعت في تبويب آخر)، ثم تنهيها بحيث لا يمكن دفعها بعد ذلك. يعود العميل إلى صفحة الدفع مع الرسالة The Xendit payment was not completed. You can try again or choose another payment method. وتبقى السلة محفوظة.

ينشئ OpenCart 3 طلبًا جديدًا في كل مرة تُعرض فيها خطوة Confirm Order. ويُحدّث OpenCart 4 الطلب في صفحة الدفع، فبعد فاتورة مرفوضة أو منتهية ينشئ Confirm Order التالي فاتورة جديدة للطلب نفسه. إذا كان طلب آخر من السلة نفسها مدفوعًا بالفعل، ينتقل العميل مباشرة إلى صفحة النجاح ولا يُحمَّل المبلغ مرتين. إذا لم يتغير إجمالي الطلب أو العملة أو الوضع، وظلت الفاتورة المفتوحة لهذا الطلب صالحة لخمس دقائق على الأقل، يُرسل العميل إلى الفاتورة نفسها. وإلا تُنهى الفاتورة القديمة أولًا وتُنشأ فاتورة جديدة، فلا توجد فاتورتان مفتوحتان لسلة واحدة أبدًا. إذا كانت الفاتورة القديمة مدفوعة بالفعل، فإن تلك الدفعة تُؤكَّد بدلًا من إنشاء دفعة جديدة.

في OpenCart 4، إذا أغلق المتجر طلب الدفع في الأثناء (مثلًا ألغاه أو استرده)، أو كان مدفوعًا بالفعل لكن السلة تغيّرت منذ ذلك الحين، بما في ذلك الكمية الجديدة، يُعاد العميل إلى صفحة الدفع مع Your previous order is already closed or paid. Please confirm the order again: the cart will be paid with a new order. ويدفع Confirm Order التالي طلبًا جديدًا. وفي OpenCart 4 تظهر هذه الرسالة ورسالة عدم اكتمال الدفع وWe could not match this payment to an order. If you were charged, please contact us. فوق صفحة الدفع.

إذا تعذّر على Xendit بدء الدفع، يبقى العميل في خطوة Confirm Order مع رسالة قصيرة فوق الزر، مثل Xendit is temporarily unavailable. Please try again in a few minutes or choose another payment method.، أو رسالة تفيد بأن العملة غير مقبولة لحسابك، أو بأن إجمالي الطلب خارج حدود المبالغ لدى Xendit. يُكتب السبب التقني في السجل. ولا يمكن دفع طلب إجماليه صفر عبر Xendit.

يعمل الـ webhook وعودة العميل أيضًا والمتجر في وضع الصيانة: يمرّر OpenCart 3 طلبات إضافات الدفع، وفي OpenCart 4 تضيف الإضافة إجراء بدء تشغيل لهذه الطلبات.

يتم الدفع دائمًا في صفحة Xendit. لا تحتوي الإضافة على استردادات من لوحة الإدارة، ولا بطاقات محفوظة، ولا اشتراكات أو مدفوعات متكررة، ولا حقول بطاقة أو محفظة إلكترونية في صفحة الدفع، ولا تفويض وتحصيل منفصلين، ولا حسابات فرعية من xenPlatform.

الطلبات

حالات الطلب

بلا حالة (طلب مفقود): أُرسل العميل إلى Xendit ولم يدفع، أو لم تؤكد Xendit الدفع بعد. تظهر هذه الطلبات في Sales > Orders فقط عند ضبط مرشح Order Status على Missing Orders.

Paid Order Status أو Complete Order Status (الافتراضي Processing أو Complete): تم تأكيد الدفع. تتبع الحالة Order Status After Payment. تعرض ملاحظة معرّف الفاتورة والمبلغ المدفوع وقناة الدفع والوضع.

On Hold (Review) Status (الافتراضي Pending): لم تطابق الفاتورة المدفوعة إجمالي الطلب أو عملته، أو دُفع أقل من الإجمالي (مثلًا تغيّرت السلة بعد إنشاء الفاتورة). تشرح الملاحظة ذلك. تحقق من الدفع في Xendit Dashboard، ثم أتمّ الطلب أو استرد الدفعة. إذا دُفعت لاحقًا فاتورة أخرى للطلب نفسه بالمبلغ الصحيح، ينتقل الطلب إلى حالة الدفع.

إذا دُفعت فاتورة لطلب له حالة أخرى، مثل ملغى أو مسترد، فلن تتغير حالة الطلب. تطلب ملاحظة منك استرداد الدفعة في Xendit Dashboard أو استعادة الطلب يدويًا. وإذا دُفعت فاتورة ثانية لطلب مدفوع بالفعل، أو لطلب آخر من سلة مدفوعة بالفعل، فلن يتغير الطلب، وتطلب ملاحظة على الطلب المدفوع منك استرداد الدفعة المكررة في Xendit Dashboard.

الملاحظات هي إدخالات في History الطلب لا يراها العميل. وتبدأ بكلمة Xendit.

تبويب VibeFox Xendit Payment Gateway

في Sales > Orders افتح طلبًا دُفع عبر Xendit. في أسفل صفحة الطلب، بجوار History وAdditional، يعرض تبويب VibeFox Xendit Payment Gateway Xendit invoice وMode (مع تسمية Test لمدفوعات الاختبار) وStatus الدفع، وجدول Invoices of this order and its cart (التاريخ، والطلب، ومعرّف الفاتورة، والمعرّف الخارجي، والوضع، والمبلغ، والمبلغ المدفوع، والحالة، وقناة الدفع)، وملاحظات Payment notes الخاصة بالطلب. يظهر التبويب للمستخدمين الذين لديهم صلاحية الوصول إلى الإضافة.

الاسترداد

لا تُرسل المبالغ المستردة إلى Xendit من المتجر. استرد الدفعة في Xendit Dashboard (ابحث عن معرّف الفاتورة المعروض في التبويب)، ثم غيّر حالة الطلب في OpenCart بعد ذلك. لا تعيد المرتجعات في Sales > Returns المال عبر Xendit.

مفتاح الترخيص

تعمل الإضافة بمفتاح ترخيص VibeFox من vibefox.net. كتلة الترخيص License — VibeFox Xendit Payment Gateway هي الكتلة الأولى في صفحة Extensions > Extensions > Payments > VibeFox Xendit Payment Gateway > Edit، فوق الإعدادات. الصق المفتاح في License key وانقر على Activate. بعد ذلك تعرض الكتلة المفتاح مموهًا، والحالة (مثل التاريخ الذي تبقى فيه الرخصة سارية ونطاقك)، والأزرار Check now لإعادة التحقق من الحالة، وChange key لإدخال مفتاح آخر، وRemove key لإزالة المفتاح من هذا المتجر. وأسفلها السطر Product: opencart-payment-xendit والرابط Manage licenses and domains in your account الذي يفتح حسابك في vibefox.net. لا يمكن تغيير المفتاح إلا لمستخدمي الإدارة الذين لديهم صلاحية Modify للإضافة. تتبع نصوص الكتلة لغة الإدارة (الإنجليزية والروسية متضمنتان).

إذا لم يُقبل المفتاح، تبيّن الكتلة السبب، مثل Key not found أو This key belongs to another product أو Domain limit reached أو License expired on مع تاريخ. بعد تغيير عنوان المتجر، أو بعد تحرير خانة نطاق في حسابك، انقر على Check now. إذا تعذّر الوصول إلى خادم التراخيص، تستمر الإضافة في العمل بآخر حالة معروفة.

يعمل المفتاح الواحد على نطاق واحد: عنوان المتجر من إعدادات OpenCart. إزالة المفتاح من المتجر لا تحرر خانة النطاق. حرّر الخانة في حسابك على vibefox.net.

بدون مفتاح نشط لا يُعرض Xendit للعملاء في صفحة الدفع. وإذا بدأ الدفع رغم ذلك، يرى العميل This payment method is not available. Please choose another one.. ويرى مسؤول مسجَّل الدخول إلى لوحة الإدارة في المتصفح نفسه طريقة الدفع في المتجر ما زالت ظاهرة، مع العلامة (unlicensed — visible to admins only)، حتى تتمكن من إعداد الإضافة واختبارها قبل شراء المفتاح. وفي OpenCart 4 لا تتوفر هذه المعاينة: لا يرى المتجر تسجيل دخول الإدارة، لذلك تُخفى طريقة الدفع عن الجميع بدون مفتاح نشط. وبعد أن تفتح صفحة Edit مرة واحدة، يظهر تذكير في Dashboard الإدارة. أغلقه بالزر × ليختفي لمدة 7 أيام. ولا تتأثر الطلبات الموجودة: فالمدفوعات التي بدأت بالفعل ما زالت تُؤكَّد.

عندما تنتهي صلاحية الترخيص، تستمر الإضافة في العمل، لكن التحديثات والدعم تحتاج إلى تجديد. تُعاد مراجعة الحالة تلقائيًا عند فتح Dashboard الإدارة أو صفحة Edit: مرة في اليوم خلال أول 14 يومًا بعد إدخال المفتاح، ثم مرة في الأسبوع. لا حاجة إلى مهمة cron. يحذف إلغاء تثبيت الإضافة دائمًا مفتاح الترخيص وحالة الترخيص.

استكشاف الأخطاء وإصلاحها

لا يظهر Xendit في صفحة الدفع: تحقق من أن الترخيص نشط، وأن Enable/Disable مفعّل، وأن الوضع الحالي لديه مفتاح سري بالبادئة الصحيحة (Test Secret Key بالبادئة xnd_development_ في وضع الاختبار، وLive Secret Key بالبادئة xnd_production_ في وضع الإنتاج)، وأن عملة الدفع هي IDR أو PHP أو VND أو THB أو MYR أو USD أو SGD. تعرض صفحة الإعدادات تحذيرًا عندما يكون المفتاح مفقودًا أو خاطئًا. تحقق أيضًا من أن عنوان الدفع يقع ضمن Geo Zone المحددة، وأن الطلب يبلغ Total المحدد في الإعدادات.

تمت عملية الدفع لكن الطلب يبقى دون حالة: الـ webhook لا يعمل. في Xendit Dashboard للوضع الذي تستخدمه (الاختبار أو الإنتاج)، تحقق من أن عنوان URL المعروض في Webhook URL مضبوط لـ Invoice paid، وأن رمز التحقق لذلك الوضع محفوظ في الحقل المطابق. يعرض Xendit Dashboard رد متجرك لكل webhook. كما يحصل الطلب على حالته عندما يعود العميل إلى المتجر بعد الدفع.

Webhook answers Webhook verification token is not configured: لم يُضبط أي رمز تحقق. الصق الرمز في الإعدادات.

Webhook answers Unauthorized: الرمز الذي أرسلته Xendit لا يطابق أيًا من الرموز في الإعدادات. انسخ رمز الوضع الصحيح مرة أخرى.

Webhook answers Token does not match the mode of this invoice: أُنشئت الفاتورة في الوضع الآخر. لا يؤكد إشعار الاختبار أبدًا دفعة حقيقية، والعكس صحيح. اضبط الـ webhook والرمز في الوضع الذي دُفع فيه الطلب.

Webhook answers Ignored: not an invoice of this store: لم تُنشأ الفاتورة بواسطة هذا المتجر، على سبيل المثال بواسطة تكامل آخر على حساب Xendit نفسه. يتلقى زر Test في Xendit Dashboard هذه الاستجابة أيضًا، وهذا يؤكد أن عنوان URL والرمز يعملان. ويعني Ignored: unknown order وIgnored: unknown invoice أن المتجر لا يعرف الطلب أو الفاتورة.

Webhook answers Temporary error: تعذّر الوصول إلى واجهة Xendit البرمجية للتحقق من الفاتورة، أو المفتاح السري لوضع الفاتورة مفقود، أو كانت السلة تُحدَّث بطلب آخر في اللحظة نفسها. تعيد Xendit إرسال الـ webhook. تحقق من ضبط المفتاحين السريين إذا بدأت المدفوعات في الوضعين، وفعّل Debug Log لمعرفة السبب.

يعرض عنوان URL الخاص بالـ webhook الرسالة Method not allowed في المتصفح: هذا طبيعي. لا يقبل العنوان سوى الطلبات الواردة من Xendit.

لا يُحفظ مفتاح: القيمة لا تبدأ ببادئة حقلها. تبدأ المفاتيح التجريبية بـ xnd_development_، والمفاتيح الحية بـ xnd_production_.

يرى العميل الرسالة This payment method is temporarily unavailable: رفضت Xendit الطلب، مثلًا لأن المفتاح السري خاطئ أو لا يملك صلاحية الكتابة لـ Money-in (الفواتير). راجع حقل Log في صفحة الإضافة. تعني رسالة متعلقة بتفاصيل الفوترة أن Xendit لم تقبل بيانات الطلب، مثل البريد الإلكتروني.

يرى العميل الرسالة A payment for this order was already received by Xendit and is being reviewed: دُفعت فاتورة سابقة لهذه السلة، لكن الطلب لم يتمكن من التأكيد بعد. تحقق من الدفعة في Xendit Dashboard وفي السجل.

يرى العميل الرسالة We could not match this payment to an order: رابط العودة من Xendit لا ينتمي إلى طلب في هذا المتجر، أو تعذّر ربط الفاتورة بالطلب. تحقق من الدفعة في Xendit Dashboard وفي السجل.

الطلب في حالة المراجعة بعد الدفع: اقرأ الملاحظات في تبويب VibeFox Xendit Payment Gateway. كان المبلغ المدفوع أو العملة مختلفين عن الطلب. أتمّ الطلب أو استرد الدفعة في Xendit Dashboard.

للمطورين: تُطلق الإضافة أحداث OpenCart xendit_p_invoice_request وxendit_p_supported_currencies وxendit_p_currency_decimals لتعديل طلب الفاتورة وقائمة العملات وعدد المنازل العشرية لكل عملة.

إلغاء التثبيت

انتقل إلى Extensions > Extensions، واختر النوع Payments، ثم انقر على Uninstall (الزر الأحمر −) بجوار VibeFox Xendit Payment Gateway. تُحذف دائمًا مفتاح الترخيص وحالة الترخيص لهذه الإضافة. يحذف OpenCart دائمًا إعدادات الإضافة الخاصة به: Enable/Disable وSort Order وGeo Zone وTotal وحالات الطلبات في قسم Payment، وتعود هذه إلى قيمها الافتراضية عند إعادة التثبيت. وفي OpenCart 4 يُزال أيضًا حدث الإضافة وإجراء بدء التشغيل الخاص بها، الذي يسمح بمرور webhook وعودة العميل في وضع الصيانة. إذا كان Delete Data on Uninstall مفعّلًا، تُحذف بقية إعدادات البوابة (العنوان، والوصف، ووضع الاختبار، والمفاتيح، والرموز، ووصف الفاتورة، وحالة الطلب بعد الدفع، والتسجيل) والسجل. إذا كان متوقفًا فتُحفظ لإعادة التثبيت لاحقًا. تبقى بيانات فواتير Xendit للطلبات محفوظة دائمًا. وتحتفظ الطلبات الموجودة بملاحظات الدفع الخاصة بها.

في OpenCart 4، لإزالة ملفات الإضافة أيضًا، انتقل بعد إلغاء التثبيت إلى Extensions > Installer وانقر على Uninstall (الزر البرتقالي −) بجوار VibeFox Xendit Payment Gateway في قائمة الإضافات المثبتة، ثم على Delete (زر سلة المهملات الأحمر) لحذف الحزمة المرفوعة.

Xendit علامة تجارية مملوكة لصاحبها. هذه الإضافة غير تابعة لـ Xendit ولا تحظى بتأييدها.