VibeFox DPO for OpenCart — المساعدة
المتطلبات
OpenCart: 3.0.x (تم الاختبار على 3.0.5.0) أو 4.0.2 وما بعده (تم الاختبار على 4.1.0.3).
PHP: 8.0 أو أحدث مع إضافة SimpleXML.
حساب DPO Pay: تحتاج إلى Company Token وService Type ID الخاصين بحساب التاجر لديك في DPO. تصدرهما DPO عند فتح حسابك؛ احصل عليهما من مدير حسابك في DPO أو من dpogroup.com. قد تقدم DPO أيضًا حسابًا تجريبيًا بالرمز ونوع الخدمة الخاصين به. لا يوجد خادم اختبار منفصل: تستخدم DPO عنوان API نفسه للحسابات التجريبية والحسابات الحقيقية، ويُختار الحساب بحسب الرمز.
العملة: يجب أن تدعم حسابك في DPO عملة الطلب. تقبل DPO ما يصل إلى منزلتين عشريتين فقط، لذلك لا يمكن دفع إجماليات الطلبات ذات ثلاث منازل عشرية (مثل KWD 12.345).
Cron الخادم: مهمة cron تستدعي عنوان URL لإعادة التحقق من الإضافة كل 15 دقيقة (انظر الإعدادات).
مفتاح ترخيص VibeFox: يُشترى من vibefox.net. ويعمل مفتاح واحد على نطاق واحد.
التثبيت
التنزيل ملف zip واحد يحتوي على الحزم الخاصة بالإصدارين من OpenCart. فُكّ ضغطه على حاسوبك. ويحتوي على README.txt، وحزمة OpenCart 3 wcp_dpo_pay-oc3-(version).ocmod.zip، وحزمة OpenCart 4 wcp_dpo_pay.ocmod.zip. ثبّت الحزمة الخاصة بإصدار OpenCart لديك فقط. مفتاح الترخيص واحد للإصدارين.
OpenCart 3
1. في لوحة الإدارة، انتقل إلى Extensions > Installer، ثم انقر على Upload واختر الملف wcp_dpo_pay-oc3-(version).ocmod.zip. لا تحتوي الإضافة على تعديلات OCMOD، لذلك لا تحتاج Extensions > Modifications إلى تحديث. وبدلًا من المثبّت، يمكنك نسخ محتويات مجلد upload الموجود في هذه الحزمة إلى المجلد الجذر لمتجرك.
2. انتقل إلى Extensions > Extensions واختر النوع Payments. ابحث عن VibeFox DPO Pay Gateway وانقر على Install (الزر الأخضر +). يحتاج مستخدم الإدارة لديك إلى صلاحية تعديل قائمة إضافات الدفع.
3. انقر على Edit (زر القلم) لفتح صفحة الإعدادات. الصق مفتاح ترخيص VibeFox في الحقل License key ضمن كتلة الترخيص أعلى الصفحة، ثم انقر على Activate (انظر مفتاح الترخيص).
4. أدخل Company Token وService Type للبيئة التجريبية و/أو الإنتاج (انظر الإعدادات).
5. أرسل إلى دعم DPO عنوان URL لإشعارات الدفع المعروض في قسم Payment notifications، واطلب منهم ضبطه لحسابك. أضف عنوان URL الخاص بـ cron إلى مهام cron في خادمك.
6. فعّل Enable/Disable وانقر على Save. أجرِ طلبًا تجريبيًا في وضع الاختبار، ثم أوقف Test mode لقبول المدفوعات الحقيقية.
OpenCart 4
1. في لوحة الإدارة، انتقل إلى Extensions > Installer، ثم انقر على Upload واختر الملف wcp_dpo_pay.ocmod.zip. لا تُغيّر اسم الملف: يأخذ OpenCart 4 رمز الإضافة من اسم الملف، ولا تعمل الحزمة إذا أُعيدت تسميتها.
2. تظهر الحزمة في قائمة الإضافات المثبتة في الصفحة نفسها. انقر على Install (الزر الأخضر +) بجانبها.
3. انتقل إلى Extensions > Extensions واختر النوع Payments. ابحث عن VibeFox DPO Pay Gateway وانقر على Install (الزر الأخضر +)، ثم على Edit (زر القلم).
4. أدخل مفتاح الترخيص وبيانات اعتماد DPO، واضبط عنوان الإشعار المباشر وcron، واختبر الدفع كما في الخطوات من 3 إلى 6 لـ OpenCart 3. صفحة الإعدادات وحقولها متطابقة في الإصدارين. العنوانان للإشعار المباشر وcron فقط مختلفان (انظر إشعارات الدفع).
تبدأ عملية التثبيت الجديدة بطريقة الدفع معطّلة ووضع الاختبار مفعّلًا. وعند التثبيت تنشئ الإضافة جدول المعاملات الخاص بها والرمز السري لعنوان URL الخاص بـ cron.
الإعدادات
توجد جميع الإعدادات في صفحة الإضافة: Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit. تُدرج الأقسام على اليسار؛ ويحفظ الزر Save أسفل القائمة الصفحة بأكملها. عندما تكون طريقة الدفع مفعّلة لكن Company Token أو Service Type للوضع المحدد فارغ، تحذّرك الصفحة من أن طريقة الدفع مخفية في الدفع، ويظهر التحذير نفسه عند الحفظ. وأثناء تفعيل وضع الاختبار، تعرض الصفحة وضع الاختبار مفعّل: تُنشأ المدفوعات بمعلومات حساب الاختبار. وبدون صلاحية تعديل الإضافة، تعرض الصفحة الإعدادات لكن لا يمكنها حفظها.
عند الحفظ، يجب ألا يكون Title فارغًا (128 حرفًا كحد أقصى)، ويجب أن يكون Sort Order عددًا صحيحًا، ويجب أن يكون Total عددًا أكبر من 0 أو يساويه؛ وإلا فلا يُحفظ شيء.
DPO Pay
Enable/Disable: Enable DPO Pay يُفعّل طريقة الدفع أو يعطّلها. الافتراضي: معطّل.
Title: اسم طريقة الدفع الذي يراه العملاء في صفحة الدفع. وهو أيضًا اسم طريقة الدفع المحفوظ في الطلب. الافتراضي: DPO Pay. حقل إلزامي.
Description: النص الذي يظهر للعميل في خطوة Confirm Order فوق زر التأكيد. الافتراضي: ادفع بأمان بالبطاقة أو بالمال عبر الهاتف في صفحة الدفع الخاصة بـ DPO Pay.
Sort Order: ترتيب DPO Pay بين طرق الدفع في صفحة الدفع. اتركه فارغًا أو أدخل عددًا صحيحًا.
Geo Zone: اعرض DPO Pay فقط لعناوين الدفع الواقعة في المنطقة الجغرافية المحددة. الافتراضي: All zones. تُضبط المناطق الجغرافية في System > Localisation > Geo Zones.
Total: إجمالي سلة الشراء، بعملة المتجر الافتراضية، الذي يجب أن يبلغه الطلب حتى يُعرض DPO Pay. اتركه فارغًا لعرض DPO Pay مهما كان المبلغ.
بيانات اعتماد API
تصدر DPO رمز Company Token ومعرّف Service Type ID لحساب التاجر الخاص بك، ورموزًا منفصلة لحساب تجريبي. احصل عليها من مدير حسابك في DPO أو من dpogroup.com (يحتوي القسم على روابط إلى هناك).
Test mode: عند التفعيل، تُنشأ المدفوعات الجديدة بـ Company Token وService Type الخاصين بالاختبار. الافتراضي: مفعّل. أوقفه لقبول المدفوعات الحقيقية ببيانات الإنتاج. وطالما هو مفعّل، يرى العملاء في خطوة Confirm Order الرسالة وضع الاختبار: تُنشأ المدفوعات بالحساب التجريبي. وتستخدم استعلامات الحالة وإلغاء المدفوعات القائمة دائمًا الحساب الذي أُنشئت به الدفعة.
Test Company Token: رمز Company Token لحساب DPO التجريبي الخاص بك.
Test Service Type: معرّف Service Type الرقمي لحساب DPO التجريبي الخاص بك.
Live Company Token: رمز Company Token لحساب التاجر الحقيقي في DPO.
Live Service Type: معرّف Service Type الرقمي لحساب التاجر الحقيقي في DPO.
لا تُعرض رموز Company Token المحفوظة مرة أخرى. يبقى الحقل فارغًا ويعرض محفوظ — اتركه فارغًا للاحتفاظ به. (Saved — leave empty to keep it.) لا تُدخل قيمة جديدة إلا عند الرغبة في تغييرها. ولحذف رمز محفوظ، ضع علامة على Clear the saved Company Token on save أسفل الحقل، ثم انقر على Save. يجب أن يكون Service Type رقمًا. ولا تُحفظ أي قيمة أخرى: تعرض الصفحة تحذيرًا وتحتفظ بالقيمة السابقة، بينما تُحفظ بقية الإعدادات.
إشعارات الدفع
Push notification URL: يُخبر إشعار الدفع المباشر متجرك فورًا بأن دفعة قد تمت، حتى لو أغلق العميل المتصفح بعد الدفع. لا يُضبط هذا الرابط في لوحة تحكم: اطلب من دعم DPO ضبطه لحسابك. يكون بالشكل في OpenCart 3: https://your-store/index.php?route=extension/payment/wcp_dpo_pay/notify، وفي OpenCart 4: https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.notify، ويُبنى من عنوان الواجهة لتثبيت OpenCart لديك. انسخه تمامًا كما تعرضه الصفحة. ويجب أن يكون متاحًا من الإنترنت، دون جدار حماية أو مصادقة أساسية أمامه.
لا تحمل إشعارات DPO المباشرة أي توقيع، لذلك لا يُوثق بمحتواها أبدًا. تستخدمها الإضافة فقط للعثور على الدفعة عبر رمز المعاملة، ثم تتحقق من النتيجة مع DPO نفسها. ويُرفض أي رمز لم ينشئه متجرك دون أي طلب إلى DPO.
إعادة التحقق المجدولة من الحالة (cron): استدعِ هذا العنوان كل 15 دقيقة من مهمة cron على الخادم، مثلًا باستخدام curl. تُعاد مراجعة المدفوعات غير المؤكدة لدى DPO بعد 15 دقيقة من إعادة التوجيه، ثم مرة أخرى بعد انتهاء المهلة الزمنية للدفع. يحتوي العنوان على رمز سري، لذلك حافظ على سريته. وفي OpenCart 4 يكون بالشكل https://your-store/index.php?route=extension/wcp_dpo_pay/payment/wcp_dpo_pay.cron&token= متبوعًا بالرمز. وبدون عنوان الإشعار المباشر وcron، لا يحصل الطلب على حالته إلا عندما يعود العميل إلى المتجر بعد الدفع.
الطلبات
ينشئ OpenCart الطلب في خطوة Confirm Order دون حالة (طلب مفقود). ولا يحصل الطلب على حالة إلا بعد أن تؤكد DPO الدفعة. يسرد كل حقل أدناه حالات الطلب في OpenCart لديك.
Successful payment status: حالة الطلب بعد دفعة ناجحة تم التحقق منها. الافتراضي: قيد التنفيذ. اختر مكتمل إذا كان يجب إكمال كل طلب مدفوع، أو حالة المراجعة الخاصة بك للموافقة اليدوية على كل طلب.
DPO payment on hold status: الحالة الخاصة بدفعة تحتاج إلى مراجعتك: عدم تطابق المبلغ أو العملة، أو دفعة مفوّضة فقط، أو معاملة مدفوعة بزيادة أو بنقص، أو دفعة تمت بعد إلغاء العميل. تشرح ملاحظة في سجل الطلب السبب. الافتراضي: في انتظار الدفع، لأن OpenCart لا يملك حالة On hold. يمكنك إنشاء حالتك الخاصة في System > Localisation > Order Statuses واختيارها هنا.
Cancelled order status: عندما تضبط طلب DPO Pay غير المدفوع على هذه الحالة، تُلغى دفعته المفتوحة لدى DPO أيضًا. الافتراضي: ملغي.
متقدم
Logging: يكتب استدعاءات API والإشعارات في الملف dpo_p_debug.log.php داخل مجلد سجلات OpenCart (storage/logs). لا يمكن فتح الملف من الويب، وعند بلوغه 5 MB يُنقل إلى dpo_p_debug.old.log.php. تُسجَّل الأخطاء دائمًا. تُخفى الرموز، ولا تُسجَّل بيانات العملاء. الافتراضي: معطّل.
Log: يعرض حجم السجل وأحدث مدخلاته. انقر على Clear log لتفريغه.
Delete data: عند التفعيل، يؤدي إلغاء تثبيت الإضافة إلى حذف إعدادات البوابة والسجل. تُحفظ بيانات DPO المخزّنة للطلبات دائمًا. ولا يحذف الإلغاء دون هذا الخيار أي بيانات أبدًا. الافتراضي: معطّل.
الاستيراد / التصدير
Export: يحفظ Download JSON الإعدادات في ملف JSON. ولا تُصدَّر رموز Company Token.
Import: الصق ملف JSON المُصدَّر سابقًا وانقر على Import لاستعادة الإعدادات. تبقى رموز Company Token المحفوظة كما هي.
الدفع
في خطوة Payment Method يختار العميل طريقة الدفع (افتراضيًا DPO Pay). وفي خطوة Confirm Order يرى العميل وصفك والملاحظة You will be redirected to the secure DPO Pay payment page. (سيتم تحويلك إلى صفحة الدفع الآمنة لـ DPO Pay.) ينشئ OpenCart الطلب في هذه الخطوة، ولا يزال بلا حالة. وعندما ينقر العميل على Confirm Order، تنشئ الإضافة معاملة DPO بإجمالي الطلب بعملة الطلب، مع رقم الطلب واسم متجرك كوصف، وترسل العميل إلى صفحة الدفع الخاصة بـ DPO. وتُرسل اسم العميل وبريده الإلكتروني ورقم هاتفه وعنوان الفوترة لملء الصفحة مسبقًا. وهناك يدفع العميل بأي طريقة مفعّلة في حسابك لدى DPO. ورابط الدفع صالح لمدة 5 ساعات. وفي OpenCart 4 يختار العميل طريقة الدفع بزر Choose في كتلة طريقة الدفع، في النافذة Payment method options، وينقر على Confirm Order أسفل صفحة الدفع. وإذا لم يطلب المتجر عنوان دفع (وهو الإعداد الافتراضي في OpenCart 4)، يُرسل عنوان الشحن بدلًا من ذلك.
بعد الدفع يعود العميل إلى متجرك. لا يُعلَّم الطلب كمدفوع إلا بعد أن تؤكد DPO ذلك: تستعلم الإضافة من DPO عن نتيجة المعاملة عندما يعود العميل، وعند وصول إشعار مباشر، وفي عمليات إعادة التحقق المجدولة. ثم يحصل الطلب على حالته بالطريقة المعتادة في OpenCart، مع رسائل البريد المعتادة للطلب وتحديث المخزون، ويرى العميل صفحة نجاح الطلب في OpenCart. وفي OpenCart 4 لا يرسل المتصفح جلسة المتجر عندما ترجع DPO العميل، لذلك تعرض الإضافة أولًا صفحة قصيرة تفتح عنوان العودة نفسه من متجرك مرة أخرى: يحتفظ العميل بالسلة وبتسجيل الدخول.
إذا لم تُؤكَّد الدفعة، يعود العميل إلى صفحة الدفع مع إحدى هذه الرسائل (وفي OpenCart 4 تظهر فوق صفحة الدفع). وتُحفظ السلة.
إذا نقر العميل على الزر في صفحة DPO للعودة إلى المتجر، فتُفحص المعاملة أولًا. فإذا كانت مدفوعة، يرى العميل صفحة النجاح. وإلا تُلغى المعاملة لدى DPO ويعود العميل إلى صفحة الدفع مع السلة.
ينشئ OpenCart 3 طلبًا جديدًا في كل مرة تُعرض فيها خطوة Confirm Order، بينما يحتفظ OpenCart 4 بطلب واحد للدفع ويحدّثه، وتكون المحاولة الجديدة معاملة DPO جديدة للطلب نفسه. وقبل بدء دفعة جديدة، تُفحص المعاملات المفتوحة لدى DPO لهذا الطلب ولطلبات السلة السابقة. فإذا كانت إحداها مدفوعة، تُؤكَّد تلك الدفعة، ويُنقل العميل إلى صفحة النجاح دون خصم ثانٍ. وإذا كانت إحداها ما زالت قيد المعالجة، يرى العميل دفعتك السابقة لهذا الطلب ما زالت قيد المعالجة لدى DPO. يرجى الانتظار بضع دقائق قبل المحاولة مرة أخرى. وإلا تُلغى المعاملات القديمة لدى DPO وتُنشأ معاملة جديدة.
يحتفظ OpenCart 4 بالطلب في صفحة الدفع حتى تُعرض صفحة النجاح. إذا أُغلق ذلك الطلب في هذه الأثناء (مثلًا أُلغي أو استُرد)، فإن Confirm Order أو العودة من DPO يعيد العميل إلى صفحة الدفع: مع The payment was declined or cancelled. Please try again or choose another payment method. إذا لم يكن في الطلب أي دفعة، أو مع Your previous order was closed by the store. Please confirm the order again: the cart will be paid with a new order. إذا كانت فيه دفعة. وإذا كان الطلب مدفوعًا بالفعل وتغيّرت السلة منذ ذلك (منتجات أخرى أو كميات مختلفة)، فالرسالة هي Your previous order is already paid. Please confirm the order again: the cart will be paid with a new order. وفي كل هذه الحالات يدفع Confirm Order التالي طلبًا جديدًا للسلة.
إذا تعذّر على DPO بدء الدفعة، يبقى العميل في خطوة Confirm Order مع رسالة قصيرة فوق الزر، تُختار بحسب رمز خطأ DPO، مثل DPO Pay لا يدعم عملة هذا الطلب. يرجى اختيار طريقة دفع أخرى. أو المبلغ يتجاوز الحد المسموح به من DPO Pay. يرجى اختيار طريقة دفع أخرى أو الاتصال بنا. وتعرض الأخطاء الأخرى DPO Pay غير متاح مؤقتًا. يرجى المحاولة مرة أخرى أو اختيار طريقة دفع أخرى. ويُكتب السبب التقني في السجل.
تعمل إشعارات الدفع المباشر وعنوان cron أيضًا أثناء وضع الصيانة للمتجر: يسمح OpenCart 3 بمرور طلبات إضافات الدفع، ويضيف الإضافة في OpenCart 4 إجراء بدء تشغيل (startup action) يسمح بالإشعار المباشر وعنوان cron وعودة العميل بالمرور. وتُؤكَّد الدفعات التي بدأت بالفعل حتى لو أوقفت طريقة الدفع.
تقبل الإضافة المدفوعات لمرة واحدة في صفحة DPO فقط. وليس لديها استردادات من المتجر، ولا بطاقات محفوظة، ولا اشتراكات أو مدفوعات متكررة، ولا حقول بطاقات على موقعك، ولا تحصيل للدفعات المفوّضة فقط.
الطلبات
حالات الطلب
بلا حالة (طلب مفقود): أُرسل العميل إلى DPO ولم يدفع، أو رُفضت الدفعة أو أُلغيت، أو لم تؤكد DPO الدفعة بعد. وفي Sales > Orders لا تظهر هذه الطلبات إلا عند ضبط الفلتر Order Status على Missing Orders.
Successful payment status (الافتراضي قيد التنفيذ): تم التحقق من الدفعة. تعرض ملاحظة في سجل الطلب المبلغ والعملة ورمز الموافقة وبداية رمز معاملة DPO.
DPO payment on hold status (الافتراضي في انتظار الدفع): أكدت DPO دفعة، لكن المبلغ أو العملة يختلفان عن الطلب، أو الدفعة مفوّضة فقط ولم تُحصَّل، أو المعاملة مدفوعة بزيادة أو بنقص، أو كان العميل قد ألغى الدفعة أو كان الطلب قد أُلغي بالفعل. تشرح الملاحظة السبب. تحقق من المعاملة في بوابة DPO. حصِّل دفعة مفوّضة فقط أو ألغِها في بوابة DPO، ثم حدّث حالة الطلب.
Cancelled order status (الافتراضي ملغي): عندما تضع طلبًا غير مدفوع من الإضافة على هذه الحالة (مثلًا طلبًا معلقًا لدفعة مفوّضة فقط)، تُلغى معاملته المفتوحة لدى DPO أيضًا.
لا يغيّر نتيجة رفض لاحقة أي طلب أبدًا، ولا تُفشل نتائج المعاملات القديمة المحاولة الحالية. وإذا أكدت DPO دفعة ناجحة ثانية لطلب مدفوع بالفعل، فلا يتغير الطلب ويحصل على ملاحظة بشأن احتمال الدفع المزدوج، لتتمكن من استرداده في بوابة DPO. ونفس النوع من الملاحظة يُضاف إلى الطلب المدفوع عندما تُدفع السلة نفسها (نفس جلسة العميل ونفس محتوى السلة) مرة أخرى مع طلب آخر، مثلًا في تبويب متصفح ثانٍ؛ وذلك الطلب الآخر لا يحصل على أي حالة. ولا يُعاد فتح طلب نقلته إلى حالة أخرى (مثلًا مسترد)؛ فالدفعة المتأخرة تضيف ملاحظة فقط.
الملاحظات هي مدخلات في History الطلب لا يراها العميل. ولا تملك الإضافة تبويبًا في صفحة الطلب.
الاستردادات
الاستردادات من المتجر غير متاحة في هذا الإصدار. استرد الدفعة من بوابة التاجر في DPO، ثم غيّر حالة الطلب في OpenCart.
مفتاح الترخيص
تعمل الإضافة بمفتاح ترخيص VibeFox من vibefox.net. كتلة الترخيص License — VibeFox DPO Pay Gateway هي أول كتلة في Extensions > Extensions > Payments > VibeFox DPO Pay Gateway > Edit، فوق الإعدادات. الصق المفتاح في License key وانقر على Activate. بعد ذلك تعرض الكتلة المفتاح مخفيًا جزئيًا، والحالة (مثل تاريخ انتهاء صلاحية الترخيص ونطاقك)، والأزرار Check now لإعادة التحقق من الحالة، وChange key لإدخال مفتاح آخر، وRemove key لإزالة المفتاح من هذا المتجر. وتحتها السطر Product: opencart-payment-dpo والرابط 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.
بدون مفتاح نشط، لا يظهر DPO Pay للعملاء في صفحة الدفع. وإذا بدأ الدفع رغم ذلك، يرى العميل This payment method is not available. Please choose another one. (طريقة الدفع هذه غير متاحة. يرجى اختيار طريقة أخرى.) أما مستخدم الإدارة المسجّل الدخول إلى لوحة الإدارة في المتصفح نفسه، فيرى طريقة الدفع في المتجر، مع الوسم (unlicensed — visible to admins only) (غير مرخّص — مرئي للمسؤولين فقط)، حتى تتمكن من إعداد الإضافة واختبارها قبل شراء مفتاح. وفي OpenCart 4 لا تتوفر هذه المعاينة: فالمتجر لا يرى تسجيل دخول الإدارة، لذلك تبقى طريقة الدفع بدون مفتاح نشط مخفية عن الجميع. وبعد أن تفتح صفحة Edit مرة واحدة، يظهر تذكير في Dashboard لوحة الإدارة. أغلقه بالزر × ليختفي لمدة 7 أيام. ولا تتأثر الطلبات الحالية: فالدفعات التي بدأت بالفعل تظل مؤكدة.
عندما تنتهي صلاحية الترخيص، تواصل الإضافة العمل، لكن التحديثات والدعم تحتاج إلى التجديد. تُعاد مراجعة الحالة تلقائيًا عند فتح Dashboard أو صفحة Edit في لوحة الإدارة: مرة واحدة يوميًا خلال أول 14 يومًا بعد إدخال المفتاح، ثم مرة واحدة أسبوعيًا. لا حاجة إلى أي مهمة cron. ويؤدي إلغاء تثبيت الإضافة دائمًا إلى حذف مفتاح الترخيص وحالة الترخيص.
استكشاف الأخطاء وإصلاحها
لا يظهر DPO Pay في صفحة الدفع: تحقق من أن الترخيص نشط، وأن Enable/Disable مفعّل، وأن Company Token وService Type للوضع المحدد مضبوطان: حقول الاختبار في وضع الاختبار، وحقول الإنتاج في غير ذلك. تعرض صفحة الإعدادات تحذيرًا إذا كانت مفقودة. وتحقق أيضًا من أن عنوان الدفع يقع ضمن Geo Zone المحددة، وأن الطلب يبلغ Total المحدد في الإعدادات.
تمت الدفعة، لكن الطلب بقي بلا حالة: من المرجح أن عنوان الإشعار المباشر لم يُضبط لحساب DPO الخاص بك، ولم يعد العميل إلى المتجر. اطلب من دعم DPO ضبط العنوان المعروض في الإعدادات، وتأكد من أن cron يستدعي عنوان إعادة التحقق كل 15 دقيقة. فعّل Logging وراجع الحقل Log في صفحة الإضافة.
يرد الإشعار المباشر بـ Unknown transaction: رمز المعاملة لا ينتمي إلى دفعة DPO Pay لهذا المتجر، مثلًا لأن الإشعار أتى من متجر آخر على حساب DPO نفسه.
يرد الإشعار المباشر بـ Verification failed: تعذّر الوصول إلى DPO للتحقق من الدفعة، أو كان الطلب يُعالج بطلب آخر في اللحظة نفسها، أو تعذّر ضبط حالة الطلب. تعيد DPO إرسال الإشعار، كما يؤكد الطلب أيضًا فحص إعادة التحقق المجدول. والسبب موجود في السجل.
يعرض عنوان الإشعار المباشر Method not allowed في المتصفح: هذا طبيعي. يقبل العنوان طلبات من DPO فقط.
يرد عنوان cron بـ Forbidden: الرمز في العنوان خاطئ. انسخ العنوان مجددًا من صفحة الإعدادات. ويرد الاستدعاء الصحيح بـ OK checked= وعدد المدفوعات التي جرى فحصها.
لا يُحفظ Service Type: يجب أن يكون معرّف Service Type الرقمي الصادر من DPO.
يرى العميل This payment method is not available. Please reload the checkout page.: لم تعد جلسة الدفع تطابق الطلب، أو أُوقفت طريقة الدفع في الأثناء. يعيد العميل تحميل صفحة الدفع.
يرى العميل DPO Pay is temporarily unavailable: رفضت DPO إنشاء المعاملة، مثلًا بسبب Company Token أو Service Type خاطئ، أو رمز من الوضع الآخر. رمز نتيجة DPO موجود في السجل.
يرى العميل أن DPO يقبل منزلتين عشريتين كحد أقصى: إجمالي الطلب يحتوي على ثلاث منازل عشرية. ولا تستطيع DPO خصم مثل هذه المبالغ.
يرى العميل This order has already been paid with DPO Pay: رفضت DPO دفعة ثانية للطلب نفسه. تحقق من الدفعة في بوابة DPO ومن الطلب في OpenCart.
الطلب في حالة المراجعة بعد الدفع: اقرأ الملاحظة في History الطلب (انظر حالات الطلب)، ثم راجع المعاملة في بوابة DPO.
للمطورين: تُطلق الإضافة أحداث OpenCart التالية: wcp_dpo_pay_customer_data (بيانات العميل المرسلة إلى DPO) وwcp_dpo_pay_payment_time_limit (المهلة الزمنية للدفع بالساعات).
إلغاء التثبيت
انتقل إلى Extensions > Extensions، واختر النوع Payments، ثم انقر على Uninstall (الزر الأحمر −) بجوار VibeFox DPO Pay Gateway. يُحذف دائمًا مفتاح الترخيص وحالة ترخيص هذه الإضافة. ويحذف OpenCart دائمًا إعدادات الإضافة الخاصة به: Enable/Disable وSort Order وGeo Zone وTotal وحالات الطلبات في قسم Orders، وتعود إلى قيمها الافتراضية عند إعادة التثبيت. كما تُحذف أحداث OpenCart الخاصة بالإضافة (وفي OpenCart 4 أحداثها وإجراء بدء التشغيل الخاص بها، الذي يسمح لـ DPO وcron بالمرور في وضع الصيانة). وإذا كان Delete data مفعّلًا، تُحذف بقية إعدادات البوابة (العنوان، الوصف، وضع الاختبار، رموز Company Token، أنواع Service Type، التسجيل) وكذلك السجل، ويُنشأ عنوان cron جديد عند إعادة التثبيت. وإذا كان معطّلًا، تُحفظ هذه الإعدادات لإعادة التثبيت لاحقًا. وتُحفظ دائمًا بيانات DPO المخزّنة للطلبات، لذلك تستمر الإشعارات المتأخرة وإعادة التحقق من الدفعات القديمة في العمل بعد إعادة التثبيت. وتحتفظ الطلبات الحالية بملاحظات الدفع الخاصة بها.
في OpenCart 4، لحذف ملفات الإضافة أيضًا، انتقل إلى Extensions > Installer بعد إلغاء التثبيت، وانقر على Uninstall (الزر البرتقالي −) بجوار VibeFox DPO Pay Gateway في قائمة الإضافات المثبتة، ثم على Delete (زر سلة المهملات الأحمر) لحذف الحزمة المرفوعة.
DPO Pay علامة تجارية تعود لمالكها. هذه الإضافة غير تابعة لـ DPO Pay ولا تحظى بتأييدها.
