
استلام الدفع بالكارت والمحفظة الإلكترونية من صفحة المنيو
بقلم فريق menu-MENA
نُشر في 4 سبتمبر 2026
ليه الميزة دي موجودة أصلاً
معظم عروض "المنيو الرقمي" في مصر بتوقف عند إن الزبون يقرا المنيو ويبعت الأوردر على WhatsApp. ده بيوصّل الطلب للمطبخ. لكنه مش بيحوّل فلوس لحسابك قبل ما الأكل يخرج، وده الاحتكاك الحقيقي لأي حد شغال بالدليفري، أو كشك، أو مطعم اتحرق قبل كده من طلب كاش ما وصلش. حل menu-MENA هو تكامل Paymob مبني على flow "Accept" الكلاسيكي بتاع Paymob، نفس الخطوات اللي الـ SDKs الرسمية بتاعتهم بتستخدمها: تسجيل دخول بـ API key، تسجيل الطلب، إنشاء payment key، وبعدين رابط لصفحة hosted الزبون بيدفع منها.
ده بنية شغالة فعلاً وراقفة على أيقونة Payments في الشريط الجانبي بتاع لوحة التحكم: route الدفع، تخزين بيانات الاعتماد، التحقق من الـ webhook، كل ده مبني وشغال، مش ميزة مستنية على roadmap.
إزاي الدفع بيحصل فعلاً
الرحلة بتبدأ بالظبط زي أي طلب في menu-MENA: الزبون بيعمل كارت من المنيو العامة وبيبعته كطلب WhatsApp. مفيش حاجة بتتغير هنا.
اللي جديد هو اللي تقدر تعمله بالطلب ده لما يوصل لوحة الطلبات. لو Paymob متوصل، أيقونة دفع بتظهر جنب أي طلب لسه مش متعلّم paid. تدوس عليها و menu-MENA بيعمل الآتي:
- بيقرا إجمالي الطلب من اللي فعلاً متخزن في الطلب نفسه، مش من أي رقم تاني ممكن يتبعت في الريكوست.
- بيسجل المبلغ ده عند Paymob تحت حساب التاجر بتاعك.
- بينسخ رابط الدفع على طول على الكليب بورد بتاعك.
بتلزق الرابط ده تاني في نفس محادثة الـ WhatsApp اللي جه منها الطلب. الزبون بيدوس عليه، وبينزل على صفحة Paymob نفسها، ويدفع بالكارت أو المحفظة. صفحة المنيو بتاعتك ماعمرها بتعرض خانة كارت، ولا بتلمس بيانات كارت الزبون خالص.
حالة دفع الطلب بتتحول لـ "pending" فور ما تنشئ الرابط، وبعدين بتتحول لـ Paid أو Failed أو Refunded أول ما webhook بتاع Paymob يرد. مفيش ريفريش تعمله علشان تشوف التغيير.
إزاي تظبطها
كل حاجة موجودة في صفحة Payments تحت الإعدادات، والـ owner بس هو اللي يقدر يفتحها. المانجر لو حاول يدخل، بيترجّع على طول للوحة التحكم، بنفس منطق صلاحيات الفريق المطبّق في كل مكان تاني، وده متأكد منه على السيرفر كمان، مش مجرد مخفي من الواجهة.
هتحتاج أربع حاجات من لوحة تحكم Paymob: API key، integration ID، iframe ID، و HMAC secret. تحطهم في الخانات المخصصة وتحفظ. لو سبت واحدة فاضية أول مرة، menu-MENA بيحفظ اللي ديته، لكن الـ switch بتاع "enabled" بيفضل مقفول لحد ما الأربعة يبقوا موجودين. فمينفعش checkout نص متظبط يعدي عليك بالغلط.
زرار "Test connection" بيتأكد إن الـ API key فعلاً شغال قبل ما تكمل أي حاجة تانية. وهو مصمم يكون فحص للتوثيق بس: مش بيسجل طلب وهمي عند Paymob كل مرة تدوس عليه، لأن ده كان هيسيب طلبات تجريبية زيادة في لوحة تحكم Paymob كل مرة تدوس فيها على الزرار. جنبه في نفس المكان toggle الـ test mode، تقدر تشغل بيه كل الفلو ضد بيئة sandbox بتاعة Paymob قبل أي دفعة حقيقية.
الصفحة كمان بتطبع callback URL، واحد لكل مطعم، بتلزقه في إعدادات الـ integration بتاعتك عند Paymob. ده العنوان اللي Paymob بينادي عليه علشان يقول لـ menu-MENA إن الدفع فعلاً تم.
إيه اللي بيخلّي الموضوع مضمون
كام تفصيلة تستاهل تعرفها لو نوعك بيسأل "طيب لو حصل كذا":
- كل callback جاي من Paymob بيتفحص مقابل HMAC secret بتاعك قبل ما menu-MENA يثق في أي خانة فيه. أي callback مش موقّع أو موقّع غلط بيترفض على طول ومايغيّرش أي حاجة.
- العملة اللي بيتحصّل بيها بتيجي من إعدادات الـ theme بتاعتك إنت، مش من الطلب نفسه، فطلب اتلعب فيه مايقدرش يبدّل العملة اللي هتتحصّل بيها بهدوء.
- لو Paymob رجّع مبلغ مختلف عن اللي اتطلب، الدفعة بتتحط عليها علامة بدل ما تتعلّم paid. دفع جزئي أو استرداد جزئي ماعمره بيتقرب لـ "paid" غلط على لوحتك.
- رابط الدفع فاضل صالح لحوالي 45 دقيقة قبل ما menu-MENA يطلع رابط جديد، فدوسة تانية على الأيقونة لنفس الطلب مش بتسجل طلبين منفصلين عند Paymob.
كل ده مش شايفه يوم بيوم. بس معناه إن الأرقام في لوحة الطلبات بتاعتك مطابقة فعلاً للي وصل حساب Paymob بتاعك.
هل الميزة دي مناسبة لمطعمك
لو مطعمك ماشي على كاش عند التسليم ومكالمة تأكيد، الميزة دي بتقفل فجوة حقيقية: طلبات WhatsApp اللي كانت بتخلص بـ "كاش لما يوصل" ممكن دلوقتي تخلص برابط بيتحصّل قبل ما الطلب يخرج من المطبخ. لو مطعمك كله حضوري وكاش على الترابيزة، غالباً مش هتفتح الصفحة دي خالص، وده تمام برضه. الميزة فاضلة off لحد ما تشغّلها إنت، ومفيش حاجة بتتغير في المنيو أو في فلو الطلبات لمطعم مبيلمسش إعدادات Payments أصلاً.