السلام عليكم وكل عام وانتم بخير! نكمل سلسلة 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 كله. بعدها مباشرة بتشغل كود الدفع:
Paymob.pay(
publicKey: ApiConstant.publicKey,
clientSecret: response.clientSecret,
)
وهنا الـ SDK هيفتح الـ Native Payment Sheet بشكل تلقائي بالكامل.
الخلاصة اللي وصلت لها
- SDK Integration: أسهل وأسرع ومناسب لمعظم التطبيقات.
- بيوفر Native UI و Secure Flow جاهزين من الصندوق.
- وقت الـ Development أقل بكتير جداً.
- * أما لو محتاج تحكم كامل جدًا Custom في الـ Checkout Experience بتاعتك، ساعتها تروح لـ API Integration.