اختيار حزمة الدفع لمنطقة الشرق الأوسط: Paymob وFawry وStripe معاً
كيف تفكر في مزودي الدفع والوسائل المحلية والمطابقة المالية وثقة صفحة الدفع عند البيع في أسواق الشرق الأوسط.

علامة تجارية قاهرية لمنتجات العناية بالبشرة، منتج جيد وموقع نظيف، كانت تحوّل أقل من 2% عند الدفع. ركّز الفريق على مسار التحويل — صور منتج أفضل، صفحة أسرع، سلة تسوق مبسطة. المشكلة الحقيقية كانت في صفحة الدفع: الخيار الوحيد كان Visa/Mastercard الدولية عبر Stripe. جزء كبير من العملاء المصريين إما لا يملكون بطاقات مفعّلة دولياً، أو يفضلون الدفع في نقاط فوري القريبة من منازلهم، أو يريدون الدفع عند الاستلام. كل واحد من هؤلاء رأى خياراً واحداً وغادر.
تغطية الدفع في الشرق الأوسط قرار وصول للسوق لا تفصيل تقني.
لماذا حزم الدفع في الشرق الأوسط متعددة المزودين بالضرورة
لا يوجد مزود دفع واحد يغطي كامل طيف الوسائل المفضلة عبر أسواق الشرق الأوسط. الفجوة بين ما تغطيه Stripe وما يستخدمه العملاء المصريون أو السعوديون أو الإماراتيون فعلاً يمكن أن تكون كبيرة:
Stripe تتعامل مع Visa وMastercard الدوليتين بشكل موثوق، وتشغّل الفوترة المتكررة بشكل نظيف، وتملك أدوات مطورين ممتازة. في مصر تغطي أساساً المستخدمين المصرفيين أصحاب البطاقات المفعّلة دولياً — شريحة مهمة لكنها ليست كل السوق.
Paymob هي طبقة تنسيق الدفع الأكثر استخداماً في مصر. تُوجّه عبر محصّلي البطاقات المحليين، وتدعم المحافظ المحمولة (فودافون كاش، وأورانج موني، واتصالات كاش)، وتدمج مزودي التقسيط. تغطي طلبات البطاقة عند الاستلام وخطط التقسيط وتدفقات تحويل البنك التي لا تغطيها Stripe.
Fawry تصل للعملاء الذين يدفعون نقداً في أكشاك فوري والصيدليات ومحلات البقالة — شبكة تضم أكثر من 300,000 نقطة في مصر. يضيف العميل للسلة ويتلقى رمز دفع ويدفع نقداً خلال 24-48 ساعة. للشرائح ذات الدخل المنخفض وللعملاء الذين لا يثقون بالبطاقات المحفوظة، فوري غالباً الوسيلة الوحيدة التي سيستخدمونها.
مزيج دفع واقعي لتجارة إلكترونية استهلاكية مصرية في حجم متوسط: نحو 40-50% بطاقة (تحصيل Paymob المحلي)، 20-30% محفظة محمولة، 10-20% فوري، 5-15% دفع عند الاستلام. Stripe وحدها تغطي شريحة البطاقة وتفوّت الباقي.
صمّم حول دفتر مدفوعات لا حقول مزودين متناثرة
الغريزة الطبيعية عند إضافة مزود دفع ثانٍ هي إضافة عمود. الطلب يحمل stripePaymentIntentId، ثم تضيف paymobOrderId، ثم fawryReferenceCode. بعد ستة أشهر لا يستطيع فريق المالية المطابقة لأن المزودين المختلفين يسوّون بطرق مختلفة، ويستخدمون عملات مختلفة في تقاريرهم، ولديهم نوافذ استرداد مختلفة.
صمّم حول دفتر مدفوعات من البداية:
model Payment {
id String @id @default(cuid())
orderId String
provider PaymentProvider // STRIPE | PAYMOB | FAWRY | COD
providerRef String
method String // CARD | WALLET | CASH | FAWRY_CODE
amount Int // بأصغر وحدة عملة (قرش أو سنت)
currency String // EGP | USD | SAR
status PaymentStatus // PENDING | AUTHORIZED | CAPTURED | FAILED | REFUNDED
settledAt DateTime?
providerFee Int?
createdAt DateTime @default(now())
updatedAt DateTime @updatedAt
order Order @relation(fields: [orderId], references: [id])
@@index([orderId])
@@index([provider, providerRef])
@@index([status, settledAt])
}
جميع المزودين يكتبون في نفس الجدول. تقارير المالية تستعلم من مصدر واحد. الاستردادات والنزاعات والمدفوعات الجزئية لها سجل تدقيق متسق.
ابنِ صفحة الدفع حول الثقة لا مجرد تغطية الوسائل
إضافة دعم فوري دون عرضه بوضوح هو عمل تكامل ضائع. العملاء يحتاجون للتعرف على الوسيلة وفهم المسار والشعور بالثقة في الحصول على ما دفعوا ثمنه.
إشارات الثقة العملية في صفحة الدفع:
- اعرض الشعارات لكل وسيلة دفع — الشعار الأخضر لفوري، والأحمر لفودافون كاش، وشعارات شبكات البطاقات معروفة فوراً لمستخدمي الشرق الأوسط.
- اشرح مسار فوري بالعربية: "ستحصل على رمز دفع تستخدمه في أقرب نقطة فوري خلال 48 ساعة." العملاء الذين لم يستخدموه من قبل يحتاجون لفهم العملية قبل الالتزام.
- تنسيق العملة: حدد هل تستخدم الأرقام الهندية (١٢٠ج.م) أم الغربية (120 EGP) والتزم بالقرار في كل مسار الدفع.
- حالات إعادة المحاولة الواضحة: إذا فشل دفع محفظة محمولة (شائع في أوقات الذروة على فودافون كاش)، اعرض الوسيلة الأفضل التالية فوراً بدلاً من إظهار خطأ عام.
معالجة webhooks تأكيد الدفع بشكل موثوق
كل مزود يرسل تحديثات حالة الدفع عبر webhook. فوري بالذات قد يُخطر بعد ساعات من المعاملة عندما يدفع العميل في الكشك. صمّم آلة حالة الطلب لتتعامل مع التأكيد المتأخر:
async function handleFawryWebhook(payload: FawryWebhookPayload) {
if (!verifyFawrySignature(payload)) {
throw new UnauthorizedException("Invalid Fawry signature");
}
if (payload.paymentStatus === "PAID") {
await paymentService.capture({
orderId: payload.merchantRefNumber,
providerRef: payload.referenceNumber,
paidAt: new Date(payload.paymentTime),
});
}
}
لا تلغِ تلقائياً طلب فوري بعد 30 دقيقة. اضبط نافذة الإلغاء لتتطابق مع نافذة الدفع لفوري — عادة 48 ساعة.
المطابقة: حقيقة فريق المالية
Stripe تسوّي بالدولار أو الجنيه الإسترليني وتحتاج تحويلاً للجنيه المصري في سجلاتك. Paymob تسوّي بالجنيه المصري مع تأخير 2-3 أيام عمل. فوري تسوّي أسبوعياً. الدفع عند الاستلام يُحصّل بواسطة شريك لوجستي بجدول صرف خاص به.
المطابقة تعني ربط كل دفعة تسوية بالمدفوعات الفردية التي تغطيها، والمحاسبة على رسوم المزودين، وتعليم أي معاملة في دفترك ليس لها سطر تسوية مقابل. هذا شاق إذا كانت البيانات متناثرة؛ وقابل للإدارة إذا كانت المدفوعات في دفتر واحد مع مراجع المزود والتسوية.
ابنِ تقرير مطابقة أسبوعي مبكراً — حتى تصدير CSV مفيد. سيشغّله فريق المالية يدوياً حتى يستوجب الحجم الأتمتة. البدء بنموذج بيانات متسق يعني أن الأتمتة على بعد استعلام عند الحاجة.
استراتيجية الدفع في الشرق الأوسط هي استراتيجية سوق. المزودون الذين تدعمهم يحددون مباشرة أي عملاء يمكنهم الشراء منك. نموذج البيانات الذي تختاره يحدد مدى صعوبة العمليات والمالية مع نمو الحجم.
لكيفية تناسب هذه التدفقات مع منتجات السوق متعدد البائعين، راجع لماذا نبني الأسواق متعددة البائعين بشكل مختلف في منطقتنا.