إضافة تابي إلى أودو: دليل الربط خطوة بخطوة
دليل عملي لإضافة تابي إلى متجر أودو: حساب التاجر، المفاتيح، وضع الاختبار، العملات الست المدعومة، نشر المزود في صفحة الدفع، والتحقق بطلب حقيقي.
تابي يقسّم قيمة الطلب على أربع دفعات للعميل، ويحوّل لك المبلغ كاملًا مقدمًا بعد خصم النسبة المتفق عليها معه. صار وجوده في صفحة الدفع شبه بديهي في السوق السعودي، ولهذا أول شيء يبحث عنه صاحب المتجر بعد إطلاق أودو هو طريقة ربط تابي وتمارا مع أودو.
أودو لا يأتي بمزود دفع جاهز لتابي في أي إصدار. يعني التفعيل يمر بثلاث مراحل منفصلة: حساب تاجر لدى تابي، وحدة برمجية تتكلم مع واجهة تابي، ثم ضبط داخل أودو. المرحلة الأخيرة هي التي تضيع فيها ساعات، لأن فيها خطوتين تفشلان بصمت: من أودو 16 وأحدث، المزود في وضع الاختبار ما يظهر إلا للموظف المسجّل دخوله، فتشوفه أنت سليمًا والعميل ما يشوفه أصلًا. والطلب بعملة لا تقبلها الوحدة يخفي المزود تمامًا بدون أي رسالة خطأ.
هذا الدليل يمشي معك بالترتيب، ويشير إلى كل فخ في مكانه.
الخطوة الأولى: احصل على حساب تاجر في تابي
لا توجد وحدة برمجية تعطيك هذا الحساب، وأي صفحة توحي بغير ذلك تبيعك شيئًا لا تملكه. التقديم يتم مباشرة عبر merchant.tabby.ai.
ما الذي يطلبه تابي منك
جهّز السجل التجاري أو وثيقة العمل الحر، وحساب بنكي باسم النشاط، ورابط المتجر، ومعلومات عن نوع المنتجات ومتوسط قيمة الطلب. تابي يدرس التاجر قبل الموافقة، فالقرار تجاري من طرفهم ومدة الدراسة تخصهم، لا تخص المبرمج الذي ينفذ الربط.
بعد الموافقة تدخل لوحة التاجر وتجد ما يحتاجه أودو: مفتاح عام ومفتاح سري، بنسختين، واحدة للاختبار وواحدة للتشغيل الحقيقي. كذلك تتفق مع تابي على نسبة الرسوم وعلى خطة التقسيط المعروضة لعميلك. هذه الأرقام يحددها تابي معك في العقد، ولا تحددها أي وحدة في أودو.
وماذا عن تمارا
تمارا شركة مستقلة تمامًا، لها تقديم منفصل ومفاتيح منفصلة. أغلب المتاجر في السعودية تنتهي إلى تفعيل الاثنين معًا، لأن العميل له تفضيل، وصفحة الدفع التي تعرض مزودًا واحدًا تخسر النصف الآخر. الأفضل تقديم الطلبين بالتوازي لا بالتتابع. وإن كنت ما زلت مترددًا بينهما، اقرأ أولًا مقارنة تابي وتمارا لمتجرك في السعودية. وإعداد تمارا داخل أودو يختلف في نقاط مهمة: رمز واجهة واحد بدل مفتاحين، وبيئة تجريبية على خادم مستقل، ورقم جوال لا يمكن للعميل تجاوزه، لذلك لها دليل مستقل لربط تمارا مع أودو خطوة بخطوة.
الخطوة الثانية: اختر إضافة تناسب إصدارك ونسختك
أودو يبيع ويرخّص لكل إصدار رئيسي على حدة، فالإضافة المشتراة للإصدار 17 ليست نفس المنتج في الإصدار 18. قبل الشراء تأكد من ثلاثة أمور: رقم إصدار قاعدة بياناتك بدقة، هل الإضافة تعمل على النسخة المجتمعية أم على المؤسسية فقط، وهل تغطي الشاشات التي تحصّل منها فعلًا. النسخة الكاملة من هذه القائمة، مع أسعار الإضافات المعروضة في المتجر جنبًا إلى جنب، في الفرق بين إضافات تابي وتمارا في متجر أودو. وإن كنت لا تعرف هل النسخة تؤثر أصلًا، أو أي استضافة تمنع التثبيت من أساسه، فمقال تابي على أودو Community أو Enterprise يحسم الأمرين قبل أن تدفع شيئًا.
النقطة الثالثة تستحق وقفة. كثير من التجار يفكر في المتجر الإلكتروني فقط، ثم يكتشف بعد الإطلاق أن رابط الفاتورة الذي يرسله للعميل في البوابة لا يحتوي زر تابي، وأن الكاشير في الفرع لا يملك الخيار أصلًا. من هنا جاءت فكرة وحدة تابي وتمارا لأودو: تثبيت واحد يغطي المتجر الإلكتروني وفواتير البوابة وعروض الأسعار ونقاط البيع، للمزودين معًا، على أودو من 14 إلى 19، المجتمعي والمؤسسي. ونقاط البيع تختلف عن صفحة الدفع بما يكفي ليكون لها دليل مستقل للتقسيط عند الكاشير. ولعروض الأسعار والفواتير التي ترسلها عبر المحادثات مطبّات خاصة بها، شرحناها في إرسال عروض أسعار وفواتير يدفعها العميل بالتقسيط.
الخطوة الثالثة: التثبيت وإدخال المفاتيح
ثبّت الإضافة من شاشة التطبيقات، ثم افتح المحاسبة، الإعدادات، مزودو الدفع. في أودو 15 وما قبله تسمى الشاشة نفسها وسطاء الدفع. وإذا لم تظهر الإضافة في التطبيقات، أو توقف التثبيت برسالة خطأ، فالسبب في الغالب ليس في الإضافة نفسها، بل في مجلد منسوخ أعمق من مكانه بمستوى، أو في فلتر شاشة التطبيقات الذي يخفي إضافات الدفع. أسباب عدم ظهور الإضافة أو تعثر تثبيتها، وحل كل سبب مشروحة بالترتيب في دليل مستقل.
افتح سجل تابي وعبّئ بيانات الربط:
- Tabby Public Key وTabby Secret Key من لوحة تابي، وابدأ بمفاتيح الاختبار. الصقها بدون أي شيء قبلها أو بعدها، لأن الوحدة ترسل المفتاح السري كما هو محفوظ بالحرف، ومسافة زائدة وحدها تكفي ليرفضه تابي.
- Tabby Merchant Code، ويجيك معبّأ بكلمة
default. لا تغيّره إلا إذا أعطاك تابي رمزًا غيره لهذا المتجر. - Tabby API URL، ويجيك معبّأ بالعنوان
https://api.tabby.ai. نص المساعدة اللي كتبته الوحدة على الحقل نفسه يقول إن هذا العنوان يناسب أغلب الحسابات، وإن المفاتيح الصادرة في السعودية قد تحتاجhttps://api.tabby.saبدلًا منه. فإذا كان العنوان السعودي هو اللي وصلك من تابي وقت التسجيل، حطّه هنا.
بعدها راجع يومية الدفع (Payment Journal) في تبويب Configuration. من أودو 16 النموذج ما يحفظ مزود تابي في وضع الاختبار أو مفعّل بدون يومية، وغالبًا أودو يعبّيها من نفسه بأول يومية بنكية عندك. بدّلها بيومية وسيطة خاصة بتابي، حتى تقدر لاحقًا تطابق كل تحويل مع طلباته، وطريقة إعدادها في شرح الحساب الوسيط في دليل التسوية.
وش تقول لك نتيجة اختبار الاتصال
احفظ، ثم اضغط Test Connection تحت بيانات الربط. الزر يسوي شيئًا واحدًا: يطلب من تابي قائمة فيها دفعة واحدة من دفعاتك، بالمفتاح السري المحفوظ، على العنوان المكتوب في Tabby API URL. والإشعار اللي يرجع لك يقول أي واحدة من هذي صارت. نذكر الرسائل كما تظهر في واجهة أودو العربية من الإصدار 15، ومعها بدايتها بالإنجليزية:
- إشعار أخضر بنجاح الاتصال: المفتاح السري صالح على هذا العنوان. رمز التاجر ما له دخل في هذا الفحص، لأنه ما ينرسل إلا لما تنشأ عملية دفع فعلية، فأول طلب تجريبي هو اللي يختبره.
- "أدخِل مفتاح تابي السري واحفظه أولًا." (وبالإنجليزية Enter and save the Tabby secret key first): الزر يقرأ السجل المحفوظ، لا النموذج المفتوح قدامك. احفظ واضغط مرة ثانية.
- "فشلت مصادقة Tabby" (وبالإنجليزية Tabby authentication failed): تابي رد ورفض المفتاح. يا إن المفتاح نفسه غلط، ناقص حرف أو معه مسافة، يا إنه مفتاح سليم راح للعنوان الغلط، مثل مفتاح صادر في السعودية على
api.tabby.ai. راجع حقل Tabby API URL قبل ما تطلب من تابي مفاتيح جديدة. - "تعذّر علينا الوصول إلى Tabby" (وبالإنجليزية We could not reach Tabby): الطلب ما جاه رد أصلًا، يعني مفاتيحك ما انفحصت. السبب المعتاد جدار حماية أو بروكسي يمنع خادم أودو من الاتصال بالخارج، أو غلطة كتابة في حقل Tabby API URL.
- "أعاد Tabby خطأً (HTTP ...)" ومعها رقم الحالة: تابي رد بخطأ ما له علاقة بالمفتاح، وما أرسل شيئًا مقروءًا. افتح Tabby/Tamara API Log تحت مزودي الدفع واقرأ السطر، ودليل أخطاء التثبيت وقراءة السجل يشرح كل حالة.
أودو 14 حالة مختلفة. نموذج وسيط الدفع فيه ما فيه زر Test Connection أصلًا، وزر Test Tabby connection في الإعدادات يفحص مفاتيح نقطة البيع، وهي محفوظة بعيدًا عن هذا النموذج. فعلى أودو 14 أول طلب تجريبي هو اختبار الاتصال.
الخطوة الرابعة: وضع الاختبار، وما معناه بالضبط
اجعل حالة المزود على وضع الاختبار واستخدم مفاتيح الاختبار. ومن أودو 16 وأحدث، وضع الاختبار يلغي نشر المزود كذلك، فتشوف تابي في صفحة الدفع وأنت مسجّل دخول، ونافذة التصفح الخاص ما تشوفه. الخطوة الخامسة تشرح ليش هذا مقصود. بيئة تابي التجريبية تتيح لك هويات اختبار تنتج موافقة أو رفضًا حسب طلبك، فتجرب الحالتين بدل أن تنتظر الصدفة.
انتبه لأمرين. الأول أن معاملات الاختبار لا تُسوّى ماليًا، فلا تعتمد عليها للتحقق من القيود المحاسبية. راجع القيود على أول تحويل حقيقي، وطريقة ذلك في دليل مطابقة تحويلات تابي وتمارا مع طلبات أودو. الثاني أن المفتاح الذي يُحسب عند التحويل للوضع الحقيقي هو المفتاح السري: كل استدعاء ترسله الإضافة إلى تابي يحمله، ولا شيء في الإضافة يقرأ المفتاح العام. استبدل المفتاحين مع ذلك حتى لا يضلّل النموذج من يفتحه بعدك، وأعد اختبار الاتصال إن كان إصدارك فيه الزر. وللاطلاع على خطة تجربة كاملة، وعلى ما يثبته طلب الاختبار وما لا يثبته، راجع دليل تجربة تابي وتمارا قبل الإطلاق.
الخطوة الخامسة: تأكد أن العميل يشوفه، مو أنت بس
هل يظهر تابي للعميل أو لا؟ الجواب يعتمد على إصدار أودو عندك.
أودو 16 إلى 19. للمزود مفتاحان. حقل الحالة، معطل أو وضع اختبار أو مفعّل، يحدد هل يقدر المزود يستقبل دفعات أصلًا. ومؤشر النشر أعلى النموذج يحدد هل يُعرض للزوار. وأودو يربط الاثنين ببعض لما تغيّر الحالة من النموذج: مفعّل ينشر المزود، ووضع الاختبار يلغي نشره. والمزود غير المنشور يظل ظاهرًا لأي مستخدم داخلي مسجّل دخوله. يعني في وضع الاختبار أنت كموظف تشوف تابي في صفحة الدفع، والعميل ما يشوفه، ولا أنت لو فتحت نافذة تصفح خاص. ما فيه عطل، والفكرة إنك تجرب على متجرك الحقيقي بدون ما يطلع زر تجريبي قدام عملائك.
ونفس القاعدة تفسر الحالة الأندر: مزود مفعّل ومع ذلك مختفي عن العملاء، لأن أحدًا ضغط إلغاء النشر بعد التفعيل. يوم الإطلاق تأكد أن المؤشر مكتوب عليه Published، ثم افتح المتجر في نافذة خاصة وشوفه بعين العميل.
أودو 14 و15. ما فيه نشر أصلًا. الحالة وحدها تقرر، والمزود في وضع الاختبار يظهر لكل الزوار، وعملاؤك الحقيقيون منهم. فعلى هذين الإصدارين خلّ تابي على معطل لين تكون جاهز للتجربة، وجرّب خارج ساعات البيع أو على نسخة من قاعدة البيانات. والتجربة على نسخة من قاعدة بياناتك لها قسم مستقل في خطة الاختبار.
الخطوة السادسة: راجع العملة قبل أن تبحث عن عطل
الوحدة تقبل ست عملات خليجية: الريال السعودي والدرهم الإماراتي والدينار الكويتي والدينار البحريني والريال القطري والريال العماني. لكن هذه قائمة الوحدة لا قائمة تابي، فوقت كتابة هذا الدليل لا يذكر مركز مساعدة التجار لدى تابي إلا الريال السعودي والدرهم الإماراتي والدينار الكويتي. وحسابك أنت معتمد لأسواق محددة قد تكون أقل من ذلك. والعملة التي تعبر الوحدة ولا يغطيها عقدك يظهر معها الزر، ثم يرفض تابي الطلب. ودليل عملات الخليج مع تابي وتمارا في أودو يضع القوائم الثلاث جنبًا إلى جنب، ويشرح كيف تحصر المزود في العملات التي يقبلها حسابك.
إذا كان أمر البيع أو الفاتورة بعملة أخرى مثل الدولار أو اليورو، فالوحدة المبنية بشكل صحيح تخفي المزود بدل أن ترسل للبوابة طلبًا مصيره الفشل. هذا هو السلوك الصحيح، لكنه من الخارج يشبه تمامًا التثبيت المعطوب.
لذلك عند غياب تابي، افحص بهذا الترتيب:
- الحالة وضع اختبار أو مفعّل، مو معطل.
- من أودو 16 وأحدث: المزود منشور، أو أنك تفحص وأنت مسجّل دخول كموظف.
- عملة المستند من العملات الست.
- من أودو 16 وأحدث: إجمالي الطلب ما يتجاوز الحد الأعلى للمزود (Maximum Amount)، وأودو يقارنه بعملة شركتك. خلّ الحقل فاضي إلا إذا احتجته.
- قائمة الدول على المزود، إن حددت قائمة، فيها دولة العميل.
أما الحدود اللي يضعها تابي على حسابك فموضوع ثاني. أودو ما يعرفها، فهي ما تخفي الزر أبدًا. تابي ياخذ قراره لما يضغط العميل، وإذا رفض الطلب عند هذه النقطة توقف الوحدة قبل التحويل لصفحة تابي، وتظهر للعميل رسالة: "تعذّر على تابي الموافقة على هذا الطلب. يُرجى اختيار طريقة دفع مختلفة." هذا قرار تابي، مو خلل في إعداداتك، وسبب إضافي لتبقي خيار البطاقة أو التحويل جنبه.
هذه القائمة تحل الغالبية العظمى من الحالات قبل أن يفتح أحد ملف السجلات. وإن لم تحلها، ففي دليل حل مشكلة اختفاء تابي من صفحة الدفع شرح لكل فلتر يطبقه أودو، بما فيها عملة قائمة الأسعار والشركات المتعددة.
الخطوة السابعة: تحقق بطلب حقيقي
حوّل إلى المفاتيح الحقيقية، أبقِ الحالة على مفعّل، ونفّذ بنفسك طلبًا صغيرًا حقيقيًا. ثم تحقق من أربعة أمور لا من واحد:
- ظهور شارة التقسيط تحت سعر المنتج، وتحدّثها عند تغيير الكمية أو اختيار متغير آخر. تابي يتوقع رسالة التقسيط ظاهرة في الموقع ضمن مراجعة الإطلاق، وصورة ثابتة للشعار لا تكفي. ما تعرضه الشارة وكيف تُعاد حسابها والقائمة التي يراجع تابي عليها في مقال رسالة 4 دفعات من تابي تحت سعر المنتج في أودو.
- انتقال العميل إلى صفحة تابي بالمبلغ الصحيح وبيانات العميل الصحيحة.
- بعد الموافقة، تتحول المعاملة في أودو إلى منجزة، ويتأكد أمر البيع، ويرتبط الدفع بالفاتورة.
- تطابق المبلغ في لوحة تابي مع المبلغ في أودو حتى الهللة.
ثم نفّذ الاختبار العكسي: اترك صفحة تابي دون إكمال الدفع، وتأكد أن الطلب بقي غير مدفوع في أودو. وجرّب أيضًا العميل الذي يوافق ثم يغلق التبويب قبل أن يفتح متجرك: في تابي لا يكتمل هذا الطلب وحده إلا عبر ويب هوك تسجّله بنفسك، وطريقة ذلك في خطة الاختبار قبل الإطلاق.
لماذا يجب ألا تُصدّق صفحة نجاح مزورة
هذه النقطة أهم مما تبدو. المتصفح يعود إلى موقعك برابط، والرابط يستطيع أي شخص كتابته بيده. فإذا كانت الوحدة تصدّق كلمة نجاح مكتوبة في الرابط، يستطيع العميل أن يعلّم طلبه كمدفوع بنفسه.
الأسلوب الصحيح أن يحمل رابط العودة مرجعًا فقط، ثم يتصل أودو بالمزود ويقرأ الحالة الحقيقية عبر GET /api/v2/payments/{id} قبل أن يلمس الطلب. وأن يُتحقق من الويب هوك بالطريقة نفسها بدل الوثوق به عند وصوله، وألا تُعالج معاملة وصلت لحالة نهائية مرتين. هكذا بُنيت إضافة تابي وتمارا لأودو، وهذا سؤال مشروع تسأله أي مزود قبل الشراء. الهجوم نفسه، والكود الذي ينخدع به، ومسار التحقق كاملًا، مشروحة في لماذا لا يجعل رابط نجاح مزوّر طلب أودو مدفوعًا.
الخطوة الثامنة: الاسترداد وتشغيل اليوم التالي
أول سؤال يجيك من المحاسب هو الاسترداد، ومن وين يبدأ يعتمد على مكان البيع:
- بيع من الموقع أو البوابة يُسترد من سجل الدفعة. افتح الدفعة المرتبطة بالفاتورة المدفوعة واضغط Refund. معالج أودو يقبل المبلغ كاملًا أو جزءًا منه، ويرسل الاسترداد إلى تابي. لكنه ما ينشئ إشعار دائن، فإذا كان البيع نفسه ينعكس أصدر الإشعار بالطريقة المعتادة. هذا الزر جزء من أودو من الإصدار 15، فعلى أودو 14 بيع الموقع يُسترد من لوحة تابي ثم يُسجّل في أودو يدويًا.
- بيع من نقطة البيع صدرت له فاتورة تقدر تسترده من الفاتورة نفسها، بزر Refund on Tabby أعلاها، لمن عنده صلاحية Tabby Refund.
وأيًا كان المسار، خلّ الاسترداد يبدأ من أودو وبس، لأن الاسترداد اللي تسويه من لوحة تابي ما يوصل أودو من نفسه. المسارات بالتفصيل، ومن يحق له يضغط أي زر، وكل رسالة خطأ في الاسترداد، تجدها في دليل استرجاع تابي وتمارا في أودو.
ومن أودو 15 وأحدث راقب كذلك Tabby/Tamara API Log. يسجّل كل نداء يرسله الموقع إلى تابي مع إخفاء المفاتيح، فأي طلب يتصرف بشكل غريب تقرأ طلبه ورده بدل التخمين.
ما لا تفعله هذه الإضافة، بوضوح
لا تجعلك معتمدًا لدى تابي أو تمارا. وليست رسمية ولا معتمدة ولا تابعة لأي منهما. عدد الأقساط ونسبة الرسوم وحدود الشراء يحددها تابي وتمارا في اتفاقية التاجر، لا أي وحدة في أودو. ولا تغني عن اختبارك أنت على قاعدة بياناتك قبل أن تضعها أمام العملاء.
ما عدا ذلك، كل ما سبق تستطيع تنفيذه بنفسك الآن، وجانب تمارا يمشي بنفس الشكل في دليل ربط تمارا مع أودو. وإذا كنت تفضّل ألا تكرر العملية مرتين، مرة لتابي ومرة لتمارا، فهذا بالضبط سبب وجود وحدة واحدة تجمع تابي وتمارا في أودو.
أسئلة متكررة
هل أحتاج حساب تاجر خاص بي في تابي، أم تكفي الإضافة؟
تحتاج حسابك الخاص. التقديم يتم عبر merchant.tabby.ai ويطلب سجلًا تجاريًا أو وثيقة عمل حر وحسابًا بنكيًا باسم النشاط. الإضافة تربط المفاتيح فقط ولا تصدر لك اعتمادًا لدى تابي.
فعّلت تابي لكنه لا يظهر في صفحة الدفع، ما السبب؟
في الغالب واحد من سببين. الأول، من أودو 16 وأحدث، أن المزود في وضع الاختبار أو غير منشور، فما يشوفه إلا الموظف المسجّل دخوله. افتح المتجر في نافذة تصفح خاص وشوف وش يشوف العميل. الثاني أن عملة الطلب مو من العملات الست: الريال السعودي والدرهم الإماراتي والدينار الكويتي والدينار البحريني والريال القطري والريال العماني، فتخفي الوحدة المزود عمدًا. ومن أودو 16 كذلك، الحد الأعلى للمزود إذا كان أقل من إجمالي السلة يخفيه.
هل تعمل الإضافة على أودو المجتمعي أم المؤسسي فقط؟
تعمل على الاثنين، من أودو 14 حتى 19. الإضافة برخصة LGPL-3 وشيفرتها مقروءة ومعلّقة، ولا تشترط النسخة المؤسسية.
اختبار الاتصال يقول إن مصادقة تابي فشلت، والمفاتيح منسوخة صح. ليش؟
راجع حقل Tabby API URL في المزود. قيمته الافتراضية https://api.tabby.ai، ونص المساعدة في الوحدة يذكر أن المفاتيح الصادرة في السعودية قد تحتاج https://api.tabby.sa، والمفتاح السليم على العنوان الغلط يُرفض بنفس طريقة المفتاح الخطأ. وتأكد كذلك أن ما فيه مسافة انلصقت قبل المفتاح أو بعده.
كيف يتم الاسترداد بعد أن دفع العميل بالتقسيط؟
من أودو 15، بيع الموقع أو البوابة يُسترد كاملًا أو جزئيًا بزر Refund في سجل الدفعة، فيُرسل الاسترداد إلى تابي، أما إشعار الدائن فتصدره منفصلًا إذا كان البيع ينعكس. وبيع نقطة البيع اللي صدرت له فاتورة يُسترد من الفاتورة نفسها. وعلى أودو 14 استرد مبيعات الموقع من لوحة تابي وسجّلها يدويًا. أما عدد الأقساط ونسبة الرسوم فتحددها اتفاقية التاجر، مو الإضافة.
هل هذه الإضافة رسمية من تابي أو تمارا؟
لا. هي تكامل مستقل من كرنلتكس مبني على الواجهات العامة للمزودين، وليست تابعة لتابي أو تمارا ولا معتمدة منهما.