رجوع

VibeFox 2C2P for OpenCart — المساعدة

المتطلبات

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

PHP: 8.0 أو أحدث.

حساب 2C2P: تحتاج إلى Merchant ID وSecret Key الخاصين بحسابك التجاري لدى 2C2P. تصدرهما 2C2P عند فتح حسابك التجاري. تختلف مفاتيح حسابات بيئة الاختبار (sandbox) عن مفاتيح الحسابات الفعلية. توجد وثائق المطورين وبطاقات الاختبار الخاصة ببيئة sandbox على developer.2c2p.com.

العملة: يجب أن تكون عملة الدفع مدعومة من الإضافة ومفعّلة في حسابك لدى 2C2P. ومن العملات المدعومة، على سبيل المثال لا الحصر: THB وSGD وMYR وPHP وIDR وVND وMMK وKHR وLAK وCNY وHKD وTWD وJPY وKRW وINR وAUD وNZD وUSD وEUR وGBP. إذا لم تكن عملة العميل مدعومة، يُخفى وسيلة الدفع في صفحة الدفع.

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

التثبيت

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

OpenCart 3

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

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

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

4. أدخل Merchant ID وSecret Key الخاصين ببيئة sandbox، وفعّل Enable/Disable، وانقر على Save، ثم أجرِ طلبًا تجريبيًا.

5. عندما تكون جاهزًا، أدخل بيانات الاعتماد الفعلية وأوقف تفعيل Sandbox Mode.

OpenCart 4

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

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

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

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

تبدأ التثبيتات الجديدة بوسيلة الدفع معطّلة ووضع sandbox مفعّلًا. وتُرسل عناوين URL الخاصة بالعودة والإشعار مع كل دفعة. لا حاجة إلى أي إعداد في بوابة 2C2P.

الإعدادات

توجد جميع الإعدادات في صفحة الإضافة: Extensions > Extensions > Payments > VibeFox 2C2P Payment > Edit. تظهر الأقسام في الجهة اليسرى، ويحفظ الزر Save أسفل القائمة الصفحة بأكملها. وأعلى الإعدادات، تعرض الصفحة الرسالة Sandbox mode is active. No real transactions will be processed. أثناء تفعيل وضع sandbox. وتحذّر الصفحة عندما تكون البوابة مفعّلة لكن Merchant ID أو Secret Key للوضع الحالي فارغ، وعندما لا تكون عملة المتجر الافتراضية مدعومة. وفي الحالتين تُخفى وسيلة الدفع في صفحة الدفع. وبدون صلاحية تعديل الإضافة تعرض الصفحة الإعدادات لكنها لا تستطيع حفظها.

عند الحفظ مع إيقاف Sandbox Mode، تعرض الصفحة Please enter your live Merchant ID. أو Please enter your live Secret Key. إذا كان أحد حقول الإنتاج فارغًا. ومع ذلك تُحفظ الإعدادات. يجب أن يكون Sort Order عددًا صحيحًا، وTotal عددًا أكبر من أو يساوي 0، وTitle بحد أقصى 128 حرفًا، ويجب أن توجد المنطقة الجغرافية وحالات الطلب؛ وإلا فلن يُحفظ شيء، وتذكر الصفحة الحقل المعني.

2C2P

Enable/Disable: Enable 2C2P Payment Gateway يفعّل وسيلة الدفع أو يعطّلها. الافتراضي: معطّل.

Title: اسم وسيلة الدفع الذي يراه العميل في صفحة الدفع. وهو أيضًا اسم وسيلة الدفع المحفوظ في الطلب، لذلك يمكن أن يتكون من 128 حرفًا كحد أقصى. إذا كان فارغًا، يُستخدم الافتراضي. الافتراضي: 2C2P Payment.

Description: النص الذي يظهر للعميل في خطوة Confirm Order، فوق زر التأكيد. الافتراضي: Pay securely via credit/debit card, e-wallet, or internet banking through 2C2P. وفي وضع sandbox تُضاف العبارة (TEST MODE) إلى النص.

Sort Order: ترتيب 2C2P بين وسائل الدفع في صفحة الدفع. اتركه فارغًا أو أدخل عددًا صحيحًا.

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

Total: إجمالي الدفع، بعملة المتجر الافتراضية، الذي يجب أن يبلغه الطلب حتى يُعرض 2C2P. اتركه فارغًا لعرض 2C2P مهما كان المبلغ.

وضع الاختبار (sandbox)

Sandbox Mode: يرسل المدفوعات إلى بيئة sandbox الخاصة بـ 2C2P (demo2.2c2p.com) باستخدام بيانات اعتماد sandbox الواردة أدناه. الافتراضي: مفعّل. أوقفه لاستقبال المدفوعات الفعلية.

Sandbox Merchant ID: معرّف التاجر الخاص بك في بيئة sandbox لدى 2C2P.

Sandbox Secret Key: المفتاح السري الخاص بك في بيئة sandbox لدى 2C2P.

بيانات اعتماد API الفعلية

تُستخدم عندما يكون وضع sandbox معطّلًا.

Merchant ID: معرّف التاجر الفعلي الخاص بك لدى 2C2P.

Secret Key: المفتاح السري الفعلي الخاص بك لدى 2C2P. يُحفظ المفتاح كما أُدخل، بما في ذلك علامات الاقتباس والشرطات المائلة العكسية.

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

صفحة الدفع

Result URLs: يعرض، للاستئناس، Frontend return URL وBackend notification URL. وهما يبدوان هكذا: https://your-store/index.php?route=extension/payment/wcp_2c2p_payment/back وhttps://your-store/index.php?route=extension/payment/wcp_2c2p_payment/notify في OpenCart 3، وhttps://your-store/index.php?route=extension/wcp_2c2p_payment/payment/wcp_2c_2p_payment.back وhttps://your-store/index.php?route=extension/wcp_2c2p_payment/payment/wcp_2c_2p_payment.notify في OpenCart 4، ويُنشآن من عنوان واجهة المتجر في تثبيت OpenCart الخاص بك. ويُرسلان تلقائيًا مع كل دفعة. وتُتحقق النتائج دائمًا باستخدام Merchant ID وSecret Key للوضع الذي تمت فيه الدفعة: فالدفعة التي بدأت في sandbox تُتحقق منها بمفتاح sandbox حتى بعد التحويل إلى الإنتاج، ويُرفض أي رد موقّع بمفتاح الوضع الآخر.

Payment Page Language: لغة صفحة الدفع الخاصة بـ 2C2P. الافتراضي: English.

Options: English, Thai, Japanese, Bahasa Indonesia, Burmese, Simplified Chinese.

Redirect API version: أبقِ القيمة 8.5، إلا إذا أخبرتك 2C2P بأن حسابك ما زال يستخدم الإصدار القديم 7.0 (توقيعات SHA-1). وتظل نتائج الدفعات التي بدأت قبل التحويل تُتحقق منها.

8.5 — HMAC-SHA256 (recommended): الإصدار الحالي (الافتراضي).
7.0 — HMAC-SHA1 (legacy accounts): للحسابات القديمة لدى 2C2P.

Order ID prefix: اختياري، ويقتصر على الأحرف والأرقام (بحد أقصى 10)، على سبيل المثال SHOP1. ترفض 2C2P معرّف طلب سبق أن استلمته. اضبط بادئة فريدة عندما تتشارك عدة متاجر حسابًا واحدًا لدى 2C2P، وكذلك في بيئة sandbox حيث تُشارَك حسابات التجار التجريبية. ومعرّف الطلب لدى 2C2P يتكون من البادئة ورقم طلب OpenCart ورقم المحاولة، على سبيل المثال SHOP1123A1. وتُحذف الأحرف الأخرى عند الحفظ مع ظهور تحذير.

الطلبات

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

Order Status After Payment: الدفع الناجح (الحالة 000 لدى 2C2P). الافتراضي: قيد التنفيذ.

Awaiting Payment Status: دفعة معلّقة (الحالة 001)، مثل دفعة نقدية أو مصرفية لم يُسددها العميل بعد. الافتراضي: في انتظار الدفع.

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

Cancelled Payment Status: رُفضت دفعة معلّقة أو أُلغيت أو فشلت لاحقًا (الحالات 002 و003 و999). الافتراضي: ملغي.

الإعدادات المتقدمة

Enable Logging: يكتب أحداث 2C2P إلى الملف tc2p_p_debug.log.php في مجلد السجلات الخاص بـ OpenCart (storage/logs). لا يمكن فتح الملف من الويب، وعند بلوغه 5 ميغابايت يُنقل إلى tc2p_p_debug.old.log.php. لا تُسجَّل بيانات البطاقات ولا المفاتيح السرية ولا رسائل البريد الإلكتروني للعملاء ولا رموز الدفع. الافتراضي: معطّل. وعند إيقافه لا يُكتب أي شيء، ولا حتى الأخطاء.

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

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

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

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

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

صفحة الدفع

في خطوة Payment Method يختار العميل وسيلة الدفع (الافتراضية 2C2P Payment). وفي خطوة Confirm Order يرى العميل وصفك. ينشئ OpenCart الطلب في هذه الخطوة، ولا يزال بدون حالة. وعندما ينقر العميل على Confirm Order، تعرض الصفحة Thank you for your order. You will be redirected to 2C2P to complete your payment. وترسل العميل إلى صفحة الدفع الخاصة بـ 2C2P بعد لحظات. وإذا لم يحدث ذلك، ينقر العميل على Pay via 2C2P.

في صفحة 2C2P يدفع العميل بأي وسيلة مفعّلة في حسابك لدى 2C2P، مثل البطاقات والمحافظ الإلكترونية ومدفوعات QR والخدمات المصرفية عبر الإنترنت أو المدفوعات النقدية. وتمرر الإضافة إجمالي الطلب بعملة الطلب، وبريد العميل الإلكتروني، وأسماء المنتجات الموجودة في الطلب. ويمكن إكمال الدفعة خلال 24 ساعة. ويبدأ كل نقرة على Confirm Order محاولة جديدة بمعرّف طلب خاص بها لدى 2C2P، لأن 2C2P لا تقبل معرّف الطلب نفسه مرتين أبدًا.

تُبلغ 2C2P عن النتيجة مرتين: يعود متصفح العميل إلى المتجر، وترسل 2C2P إشعارًا من الخادم إلى الخادم. ويُعالج الإشعاران بالطريقة نفسها. لا يُعلَّم الطلب كمدفوع إلا بعد أن تؤكده 2C2P بتوقيع صالح. ويجب أن تنتمي النتيجة إلى الدفعة أيضًا: فيجب أن يكون معرّف الطلب لدى 2C2P قد أصدره متجرك، ويُتحقق من Merchant ID والرمز العشوائي للمحاولة. وتُرفض النتائج التي لا تحمل توقيعًا صالحًا. ويعمل الإشعار أيضًا أثناء وضع الصيانة في المتجر، لأن OpenCart يسمح بمرور طلبات إضافات الدفع. وفي OpenCart 4 تضيف الإضافة startup action لهذا الغرض، وهو ما يسمح بمرور النتائج الموقّعة من 2C2P.

بعد الدفع الناجح يحصل الطلب على حالته بالطريقة القياسية في OpenCart، مع رسائل البريد الإلكتروني المعتادة للطلب وتحديث المخزون، ويرى العميل صفحة نجاح الطلب في OpenCart مع العبارة Your 2C2P payment has been received. وفي حالة الدفعة المعلّقة تعرض الصفحة Your 2C2P payment is pending (for example a cash or bank payment that is not made yet). The order will be processed as soon as 2C2P confirms the payment. وبالنسبة إلى طلب قيد المراجعة تعرض Your payment was received and is being reviewed by the shop.

إذا لم تكتمل الدفعة أو أُلغيت في صفحة 2C2P، يبقى الطلب بدون حالة. ويعود العميل إلى صفحة الدفع مع الرسالة Payment was not completed. Please try again or choose a different payment method. وتبقى السلة محفوظة، ويمكن للعميل أن يدفع مجددًا أو أن يختار وسيلة دفع أخرى. وإذا تعذر تأكيد النتيجة، يرى العميل We could not confirm the payment result. If your account was charged, please contact us before paying again. وإذا تعذر بدء الدفعة، كأن تكون عملة الطلب غير مدعومة أو يكون إجمالي الطلب صفرًا، يبقى العميل في خطوة Confirm Order مع الرسالة This payment method is currently unavailable for this order. Please contact us or choose another payment method.

إذا كان للطلب حالة بالفعل (مدفوع أو في انتظار دفعة معلّقة)، فلن يُنشأ نموذج دفع ثانٍ. ويُوجَّه العميل إلى صفحة نجاح الطلب.

في OpenCart 4 يختار العميل وسيلة الدفع بالزر Choose في كتلة وسيلة الدفع، في النافذة Payment method options، وينقر على Confirm Order في أسفل صفحة الدفع. وتُعرض الرسائل الخاصة بدفعة لم تكتمل أو لم يمكن تأكيدها فوق صفحة الدفع. ويُبقي OpenCart 4 طلبًا واحدًا لصفحة الدفع ويحدّثه: فبعد دفعة فاشلة يدفع العميل الطلب نفسه بمحاولة جديدة (معرّف طلب 2C2P جديد مثل SHOP1123A2). وإذا أُغلق ذلك الطلب دون دفع في هذه الأثناء (مثلًا لأن دفعته المعلّقة أُلغيت أو لأنك ألغيت الطلب)، يُعاد العميل إلى صفحة الدفع مع الرسالة Payment was not completed. Please try again or choose a different payment method.، وتؤدي النقرة التالية على Confirm Order إلى دفع طلب جديد. وإذا أُغلق الطلب بعد دفعة، أو كان له حالة من دفعة لسلة أخرى، فالرسالة This order can no longer be paid. Please confirm your order again. ولا يُعرض الطلب المدفوع أبدًا كمدفوع لسلة أخرى. ويُعد تغيير السلة، بما في ذلك الكمية الجديدة، سلة جديدة تحتاج إلى دفعة خاصة بها.

لا تتضمن الإضافة استردادات من OpenCart، ولا بطاقات محفوظة، ولا مدفوعات متكررة أو اشتراكات، ولا حقول بطاقات في موقعك، ولا دعمًا لواجهة 2C2P PGW 4.x API.

الطلبات

حالات الطلب

No status (missing order): أُرسل العميل إلى 2C2P ولم تصل أي نتيجة بعد، أو فشلت الدفعة. وفي Sales > Orders لا تظهر هذه الطلبات إلا عند ضبط فلتر Order Status على Missing Orders.

Order Status After Payment (default Processing): أبلغت 2C2P عن دفعة ناجحة. يعرض الملاحظة معاملة 2C2P ورمز الموافقة والتاريخ وقناة الدفع.

Awaiting Payment Status (default Pending): الدفعة معلّقة لدى 2C2P، مثل دفعة نقدية لم يسددها العميل بعد. ينتقل الطلب إلى Order Status After Payment عندما تبلغ 2C2P عن الدفعة. ويُخطر OpenCart العميل بهذا التغيير.

On Hold (Review) Status (default Pending): أبلغت 2C2P عن مبلغ أو عملة يختلفان عن إجمالي الطلب. تعرض الملاحظة القيم المستلمة والقيم المتوقعة. تحقّق من الطلب والمعاملة في بوابة 2C2P.

Cancelled Payment Status (default Canceled): رُفضت دفعة معلّقة أو أُلغيت أو فشلت لاحقًا. تعرض الملاحظة الحالة والسبب. ولا يُلغي النتيجة الفاشلة لمحاولة أقدم طلبًا ينتظر محاولة أخرى.

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

وفي OpenCart 4 قد يحصل طلب غير مدفوع من خطوة الدفع على الحالة Voided، ويضبطها OpenCart 4 عندما يعود العميل إلى خطوة Confirm Order. تعامل الإضافة هذا الطلب كطلب بدون حالة، وتؤكّده أي دفعة لاحقة.

الملاحظات هي إدخالات في History الخاص بالطلب، ولا يراها العميل.

تبويب VibeFox 2C2P Payment

في Sales > Orders افتح طلبًا دُفع عبر 2C2P. في أسفل صفحة الطلب، بجوار History وAdditional، يعرض التبويب VibeFox 2C2P Payment معرّف الطلب لدى 2C2P مع الوسم Sandbox في دفعات sandbox، والمعاملة، وحالة الدفع، والمبلغ المستلم، والقناة، ورمز الموافقة، ورقم البطاقة المُخفى، والتاريخ، واستجابة القناة، وإصدار API، و2C2P notes الخاصة بالطلب. ويظهر التبويب للمستخدمين الذين لديهم صلاحية الوصول إلى الإضافة.

الاستردادات

الاستردادات من OpenCart غير مدعومة. استرد الدفعة من بوابة التاجر لدى 2C2P، ثم سجّل الاسترداد في OpenCart يدويًا، على سبيل المثال بتغيير حالة الطلب.

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

تعمل الإضافة بمفتاح ترخيص VibeFox من vibefox.net. كتلة الترخيص License — VibeFox 2C2P Payment هي الكتلة الأولى في Extensions > Extensions > Payments > VibeFox 2C2P Payment > Edit، فوق الإعدادات. الصق المفتاح في License key وانقر على Activate. بعد ذلك تعرض الكتلة المفتاح مُخفى الأجزاء، والحالة (مثل تاريخ انتهاء صلاحية الترخيص ونطاقك)، والأزرار Check now لإعادة التحقق من الحالة، وChange key لإدخال مفتاح آخر، وRemove key لإزالة المفتاح من هذا المتجر. وأسفلها سطر Product: opencart-payment-2c2p ورابط 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.

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

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

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

لا يظهر 2C2P في صفحة الدفع: تحقق من أن الترخيص نشط، وأن Enable/Disable مفعّل، وأن الوضع الحالي يحتوي على Merchant ID وSecret Key: حقول sandbox في وضع sandbox، وحقول الإنتاج في وضع الإنتاج. وتحقق من أن عملة العميل مدعومة. وتعرض صفحة الإعدادات تحذيرًا عندما تكون بيانات الاعتماد مفقودة أو عندما لا تكون العملة الافتراضية مدعومة. وتحقق أيضًا من أن عنوان الدفع يقع ضمن Geo Zone المحددة، وأن الطلب يبلغ Total المحدد في الإعدادات.

تمت الدفعة لكن الطلب بقي بدون حالة: لم تصل إلى متجرك أي نتيجة صالحة. تحقق من أن Merchant ID وSecret Key للوضع الذي تمت فيه الدفعة يطابقان حساب 2C2P، وأن Redirect API version يطابق حسابك. وتُرفض النتيجة ذات التوقيع الخاطئ أو المرتبطة بمعرّف تاجر آخر. فعّل Enable Logging وابحث عن رسائل hash أو Merchant ID في الحقل Log. وتحقق أيضًا من أن خادمك يقبل طلبات 2C2P الموجهة إلى عنوان URL الخاص بالإشعار في الواجهة الخلفية.

يرد إشعار الواجهة الخلفية بالرسالة 400 FAIL: تفتقر النتيجة إلى حقول، أو توقيعها خاطئ، أو معرّف التاجر مختلف، أو الرمز خاطئ. وتعني 404 FAIL أن معرّف طلب 2C2P لم يصدره هذا المتجر. وتعني 503 RETRY أن الطلب كان يُؤكَّد بطلب آخر في اللحظة نفسها، أو أن المعالجة فشلت؛ وستعيد 2C2P المحاولة لاحقًا. فعّل Enable Logging لمعرفة السبب.

يعرض عنوان URL للإشعار الكلمة FAIL في المتصفح: هذا أمر طبيعي. يقبل العنوان طلبات POST من 2C2P فقط.

تقول 2C2P إن معرّف الطلب موجود بالفعل: لا تقبل 2C2P معرّف الطلب نفسه مرتين. ويحدث ذلك عندما تتشارك عدة متاجر حسابًا واحدًا لدى 2C2P، أو في بيئة sandbox حيث تُشارَك حسابات التجار التجريبية بين كثير من المطورين. اضبط Order ID prefix فريدًا.

تمت الدفعة لكن الطلب في حالة انتظار الدفع أو المراجعة: إما أن الدفعة ما زالت معلّقة لدى 2C2P (مثل دفعة نقدية لم يسددها العميل بعد)، وإما أن المبلغ المدفوع أو العملة المدفوعة لم يطابقا الطلب. تحقق من الملاحظات في تبويب VibeFox 2C2P Payment ومن المعاملة في بوابة 2C2P.

يرى العميل الرسالة This payment method is currently unavailable for this order: عملة الطلب غير مدعومة، أو أن Merchant ID أو Secret Key للوضع الحالي فارغ، أو أن إجمالي الطلب صفر.

يرى العميل الرسالة This payment method is not available. Please reload the checkout page.: لم تعد جلسة الدفع تطابق الطلب، أو أن وسيلة الدفع أُوقفت في هذه الأثناء. ينبغي للعميل إعادة تحميل صفحة الدفع.

Please enter your live Merchant ID أو Please enter your live Secret Key on save عند الحفظ: وضع sandbox موقوف وأحد حقول الإنتاج فارغ. أدخل بيانات اعتماد الإنتاج أو أبقِ Sandbox Mode مفعّلًا.

للمطورين: قبل توقيع نموذج الدفع، تُطلق الإضافة حدث OpenCart باسم tc2p_p_payment_fields مع حقول النموذج والطلب.

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

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

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

2C2P علامة تجارية مسجلة لمالكها. هذه الإضافة غير تابعة لـ 2C2P ولا معتمدة من قبلها.