FlutterPaymobPaymentArabic

الدليل الشامل لربط بوابات الدفع: Paymob SDK مع Flutter 💳

June 7, 20265 min read
Paymob SDK in Flutter Cover Image

السلام عليكم وكل عام وانتم بخير! نكمل سلسلة Payment Gateways. آخر مرة اتكلمنا عن Stripe، المرة دي هنتكلم عن حاجة أسهل (مصرية وعربية) ومن الحاجات اللذيذة جدًا في الـ Integration وهي Paymob.

Paymob بيوفر طريقتين مختلفين تمامًا للربط: 1. SDK Integration 2. API Integration

في البوست ده هشرح طريقة الـ SDK لأنها الأسهل والأسرع في أغلب الحالات وهتوفر عليك وقت كبير جداً.

الفكرة العامة للـ Flow

الـ flow في Paymob SDK بيكون عبارة عن 4 مراحل أساسية:

1. Authentication

التطبيق بيطلب Token من Paymob باستخدام الـ API Key الخاص بك.

2. Create Intention

بعدها بتعمل Payment Intention وهنا بتحدد الـ payment method (زي Card أو Wallet أو Google Pay) وبيرجعلك حاجتين مهمين: client_secret و intention_id.

3. Launch SDK

Flutter بيفتح الـ Native Paymob SDK مباشرة باستخدام الميثود Paymob.pay(...).

4. Payment Result

الـ SDK بيتولى كل حاجة (UI, Validation, Secure Checkout) وفي النهاية بيرجعلك الـ Status: Success / Failed / Pending.

إيه الحلو في الـ SDK Integration؟

  • Credit Card UI جاهز
  • دعم المحافظ الإلكترونية (Wallets)
  • Card Validation مدمج
  • ميزة حفظ البطاقات (Save Card)
  • Secure Flow (3D Secure)
  • Native Experience سلسة

Android Setup

في Android لازم تضيف الـ AAR File يدويًا داخل:

android/libs/com/paymob/sdk/Paymob-SDK/1.8.1/

وبعدها تضيف الـ local maven path داخل build.gradle.kts و settings.gradle.kts.

نقطة ناس كتير بتنساها:

تأكد من تفعيل dataBinding = true

iOS Setup

في iOS الموضوع بسيط جدًا:

  • تضيف PaymobSDK.xcframework
  • تعمل Embed & Sign من Xcode

متطلبات النظام:

مهم جدًا يكون الحد الأدنى iOS 13+ و Swift 5+

أهم جزء في الـ Flow

بعد ما تعمل Create Intention هيرجعلك الـ client_secret وده أهم جزء تقريبًا في الـ Integration كله. بعدها مباشرة بتشغل كود الدفع:

checkout.dart
Paymob.pay(
  publicKey: ApiConstant.publicKey,
  clientSecret: response.clientSecret,
)

وهنا الـ SDK هيفتح الـ Native Payment Sheet بشكل تلقائي بالكامل.

الخلاصة اللي وصلت لها

  • SDK Integration: أسهل وأسرع ومناسب لمعظم التطبيقات.
  • بيوفر Native UI و Secure Flow جاهزين من الصندوق.
  • وقت الـ Development أقل بكتير جداً.
  • * أما لو محتاج تحكم كامل جدًا Custom في الـ Checkout Experience بتاعتك، ساعتها تروح لـ API Integration.
Abdalrahman Reda

Written by Abdalrahman Reda

Software Engineer specialized in Flutter and Python Backend development. Writing about technology, coding practices, and creating impactful applications.