moamalat_payment 2.0.0 copy "moamalat_payment: ^2.0.0" to clipboard
moamalat_payment: ^2.0.0 copied to clipboard

PlatformAndroid

Comprehensive Flutter package for Moamalat payment gateway integration with native Android SDK and WebView support, featuring intelligent auto-selection and Libya-focused currency handling.

Changelog #

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

2.0.0 - 2024-10-06 #

๐ŸŽ‰ Major Release - Native SDK Integration & Unified Architecture #

This major release introduces dual payment method support with native Android SDK integration alongside the existing WebView implementation, featuring intelligent auto-selection and comprehensive developer experience improvements.

โœจ Added #

๐Ÿš€ Native SDK Integration

  • NEW: MoamalatSdkService - Direct integration with native Moamalat Android SDK
  • NEW: MoamalatPaymentUnified - Unified widget supporting both SDK and WebView methods
  • NEW: PaymentMethod enum for explicit method selection (SDK, WebView)
  • NEW: Automatic payment method selection (SDK on Android, WebView elsewhere)
  • NEW: Platform capability detection and fallback mechanisms
  • NEW: SDK availability checking with MoamalatSdkService.isAvailable()
  • NEW: Native error handling and transaction callbacks for SDK

๐ŸŽฏ Smart Method Selection

  • NEW: Auto-selection logic that chooses optimal payment method per platform
  • NEW: Manual override support for forced SDK or WebView usage
  • NEW: Graceful fallback from SDK to WebView when SDK unavailable
  • NEW: Platform-specific conditional exports for optimal performance

๐Ÿ—๏ธ Enhanced Architecture

  • NEW: Modular widget architecture with separate page components
  • NEW: Reusable UI components following pub.dev best practices:
    • PaymentAmountInput - Currency input with real-time conversion
    • PaymentMethodButton - Consistent method selection buttons
    • PaymentStatusCard - Transaction result display
    • SdkAvailabilityIndicator - Real-time SDK status checking
  • NEW: Separate page components for different demo types
  • NEW: Clean navigation structure with Material Design 3

๐Ÿ“ฑ Android Integration

  • NEW: Native Android plugin implementation with method channels
  • NEW: PayButton SDK integration with full transaction callbacks
  • NEW: Proper Android manifest configuration and dependency management
  • NEW: MultiDex support for SDK compatibility
  • NEW: JitPack repository integration for SDK dependencies

๐Ÿš€ Improved #

๐Ÿ“š Developer Experience

  • IMPROVED: Comprehensive example app refactoring with multiple demo types:
    • Payment Methods Demo (unified widget showcase)
    • WebView Implementation (traditional approach)
    • Direct SDK Usage (advanced integration)
  • IMPROVED: Professional Material Design 3 theming
  • IMPROVED: Intuitive navigation with descriptive cards and icons
  • IMPROVED: Real-time currency conversion display
  • IMPROVED: Interactive SDK availability checking

๐ŸŽจ Code Quality & Documentation

  • IMPROVED: Complete code documentation following pub.dev standards
  • IMPROVED: Comprehensive inline comments for all public APIs
  • IMPROVED: Enhanced error model documentation with usage examples
  • IMPROVED: Clear distinction between SDK and WebView amount handling
  • IMPROVED: Removed all debug print statements (production-ready)

๐Ÿ’ฐ Currency Handling

  • IMPROVED: Consistent CurrencyConverter usage throughout package
  • IMPROVED: Clear documentation of amount formats for different methods:
    • Unified Widget: Always use dirham strings
    • SDK Service: Use LYD doubles (automatic conversion)
    • WebView Widget: Use dirham strings
  • IMPROVED: Better error messages for amount validation
  • IMPROVED: Enhanced display formatting with proper localization

๐Ÿ” Security & Error Handling

  • IMPROVED: Enhanced transaction parsing with robust type checking
  • IMPROVED: Better error propagation from native SDK
  • IMPROVED: Comprehensive validation for all payment parameters
  • IMPROVED: Secure handling of different platform result formats

๐Ÿ”ง Fixed #

๐Ÿ› Critical Fixes

  • FIXED: Amount formatting consistency across all payment methods
  • FIXED: Currency conversion calculations now use CurrencyConverter exclusively
  • FIXED: Transaction success model amount field changed from int to double
  • FIXED: Platform-specific Map type handling in method channel results
  • FIXED: Hex validation for merchant secret keys (supports both hex and string)

๐Ÿ—๏ธ Build & Configuration

  • FIXED: Android namespace configuration for plugin
  • FIXED: Java toolchain compatibility issues
  • FIXED: SDK dependency resolution with compileOnly pattern
  • FIXED: Manifest merger conflicts with MultiDex configuration
  • FIXED: Proper plugin registration and method channel setup

๐Ÿ“ฑ Platform Compatibility

  • FIXED: NoClassDefFoundError for SDK classes in runtime
  • FIXED: Platform channel result type casting issues
  • FIXED: iOS compatibility with WebView-only fallback
  • FIXED: Web/WASM compatibility maintained

๐Ÿ—‘๏ธ Removed #

๐Ÿงน Code Cleanup

  • REMOVED: All debug print statements from production code
  • REMOVED: Manual currency calculations (replaced with CurrencyConverter)
  • REMOVED: Redundant example code in main.dart
  • REMOVED: Legacy widget examples (moved to dedicated pages)

๐Ÿ“ฆ Dependencies & Configuration #

๐Ÿ”„ Updated Dependencies

  • UPDATED: Android compileSdkVersion to 34
  • UPDATED: Android targetSdkVersion to 34
  • UPDATED: Minimum Android SDK version to 19 (required for SDK)
  • ADDED: Native SDK dependencies with proper version constraints
  • ADDED: MultiDex support for Android applications

๐ŸŒŸ Highlights #

This release represents a major architectural evolution:

  • ๐Ÿ† Dual Integration: Both native SDK and WebView support in one package
  • ๐Ÿง  Smart Selection: Automatic method selection with intelligent fallbacks
  • ๐Ÿ“ฑ Native Performance: Direct Android SDK integration for optimal UX
  • ๐ŸŒ Universal Compatibility: Maintained support for all platforms
  • ๐ŸŽจ Professional Examples: Production-ready demo implementations
  • ๐Ÿ“– Clear Documentation: Comprehensive guides for all integration approaches
  • ๐Ÿ’ฐ Currency Clarity: Crystal-clear amount handling for different methods

๐Ÿ“ˆ Migration Guide #

From v1.x.x to v2.0.0:

  1. Recommended Approach: Switch to MoamalatPaymentUnified

    // OLD
    MoamalatPayment(...)
    
    // NEW (Recommended)
    MoamalatPaymentUnified(...)  // Auto-selects best method
    
  2. Amount Handling: No changes needed - dirham strings work everywhere

    amount: "1000"  // Still correct for all widgets
    amount: CurrencyConverter.dinarToDirham(1.0)  // Still correct
    
  3. Android Setup: Add SDK dependencies for optimal performance

    dependencies {
        implementation 'com.github.payskyCompany:NUMO-PayButton-SDK-android:1.0.12'
    }
    
  4. Existing Code: All existing MoamalatPayment usage continues to work

๐Ÿ”ฎ What's Next #

Future releases will focus on:

  • iOS native SDK integration (when available)
  • Advanced customization options
  • Enhanced analytics and reporting
  • Additional payment method support

1.0.1 - 2024-09-23 #

๐Ÿ“ Documentation Improvements #

Enhanced Comments

  • IMPROVED: Added clear explanation for merchantReference parameter
  • IMPROVED: Updated comments to explain transaction reference usage
  • IMPROVED: Better developer understanding of parameter purpose

Examples Updated

  • UPDATED: Main.dart example with improved comments
  • UPDATED: README.md examples with clearer explanations
  • UPDATED: All merchantReference instances now have descriptive comments

๐Ÿ”ง Minor Fixes #

  • FIXED: Comment clarity for transaction reference management
  • IMPROVED: Developer experience with better parameter documentation

1.0.0 - 2024-09-23 #

๐ŸŽ‰ Major Release - Complete Package Overhaul #

This major release represents a complete transformation of the MoamalatPayment package with significant new features, WASM compatibility, and comprehensive improvements.

โœจ Added #

๐Ÿ’ฑ Currency Conversion System

  • NEW: CurrencyConverter utility class for Libyan Dinar โ†” Dirham conversion
  • NEW: dinarToDirham() - Convert dinar amounts to dirham strings
  • NEW: dinarStringToDirham() - Convert dinar strings to dirham format
  • NEW: dirhamToDinar() - Convert dirham back to dinar for display
  • NEW: isValidDinarAmount() and isValidDirhamAmount() - Input validation
  • NEW: formatDinarAmount() and formatDirhamAmount() - Display formatting
  • NEW: Thousands separators and currency symbols in formatting

๐ŸŒ WASM Compatibility & Multi-Platform Support

  • NEW: Full WebAssembly (WASM) runtime compatibility
  • NEW: MoamalatPaymentWeb - Web-specific implementation using HTML iframe
  • NEW: MoamalatPaymentStub - Graceful fallback for unsupported platforms
  • NEW: MoamalatPaymentPlatform - Conditional imports for platform detection
  • NEW: Automatic platform selection (Android/iOS/Web/WASM)

๐ŸŽจ User Experience Enhancements

  • NEW: Beautiful loading indicators with customizable messages
  • NEW: Arabic language support with RTL text handling
  • NEW: Smooth navigation transitions with proper WebView cleanup
  • NEW: Enhanced error handling with user-friendly messages
  • NEW: Professional loading screens with progress indicators

๐Ÿ”’ Security & Compliance

  • NEW: Enhanced HMAC-SHA256 transaction signing
  • NEW: Improved secret key handling and validation
  • NEW: Comprehensive input validation for all parameters
  • NEW: Security best practices documentation

๐Ÿš€ Improved #

๐Ÿ“š Documentation

  • IMPROVED: Complete README.md overhaul with professional design
  • IMPROVED: Comprehensive API documentation with examples
  • IMPROVED: Real-world usage examples (e-commerce, gaming)
  • IMPROVED: Platform-specific setup guides
  • IMPROVED: Troubleshooting section with common issues
  • IMPROVED: Security best practices guide
  • IMPROVED: Multi-language examples (Arabic/English)

๐Ÿ—๏ธ Code Quality

  • IMPROVED: Complete code documentation following pub.dev standards
  • IMPROVED: Enhanced error handling and edge case management
  • IMPROVED: Type safety improvements with detailed model classes
  • IMPROVED: Code organization and structure
  • IMPROVED: Performance optimizations for WebView handling

๐Ÿ› ๏ธ Developer Experience

  • IMPROVED: Comprehensive example application with live demonstrations
  • IMPROVED: Currency conversion examples and best practices
  • IMPROVED: Platform-specific implementation guides
  • IMPROVED: Enhanced debugging and logging capabilities

๐Ÿ”ง Fixed #

๐Ÿ› Bug Fixes

  • FIXED: WebView navigation back button smoothness issues
  • FIXED: WebView overlay appearing during navigation transitions
  • FIXED: Memory leaks in WebView disposal
  • FIXED: PopScope navigation handling for Flutter 3.16+
  • FIXED: Platform-specific build issues and compatibility

๐Ÿ”„ Compatibility

  • FIXED: Flutter 3.16+ compatibility with PopScope migration
  • FIXED: Gradle plugin compatibility issues
  • FIXED: iOS build configuration problems
  • FIXED: Web deployment and WASM runtime issues

๐Ÿ—‘๏ธ Removed #

๐Ÿงน Deprecated Features

  • REMOVED: Legacy WillPopScope implementation (replaced with PopScope)
  • REMOVED: Redundant debug print statements
  • REMOVED: Unused import statements and dependencies
  • REMOVED: Generated files from version control

๐Ÿ“ฆ Package Management #

๐Ÿ”„ Dependencies

  • UPDATED: flutter_inappwebview to latest compatible version
  • UPDATED: crypto package for enhanced security
  • UPDATED: Flutter SDK compatibility to latest stable

๐Ÿ“ Repository

  • IMPROVED: Comprehensive .gitignore following Flutter best practices
  • IMPROVED: Repository structure and organization
  • IMPROVED: Removed generated files from version control
  • IMPROVED: Added proper licensing and contribution guidelines

๐ŸŒŸ Highlights #

This release transforms MoamalatPayment from a basic payment widget into a comprehensive, enterprise-ready payment solution:

  • ๐Ÿ† Enterprise Ready: Professional-grade documentation and examples
  • ๐ŸŒ Multi-Platform: Works seamlessly on Android, iOS, Web, and WASM
  • ๐Ÿ’ฑ Libya-Focused: Built-in Libyan Dinar currency handling
  • ๐Ÿ”’ Security First: Enhanced security practices and validation
  • ๐ŸŽจ User Friendly: Beautiful UI with Arabic language support
  • ๐Ÿ› ๏ธ Developer Friendly: Comprehensive documentation and examples

๐Ÿ“ˆ Migration Guide #

For users upgrading from previous versions:

  1. Currency Amounts: Use CurrencyConverter.dinarToDirham() for user-friendly dinar input
  2. Navigation: PopScope is now used instead of WillPopScope (automatic)
  3. Platform Support: Package now works on all platforms including Web/WASM
  4. Documentation: Refer to the new comprehensive README for updated examples

0.0.5 2024-XX-XX #

Changed #

  • Update dependency
  • Change file name

0.0.4 2024-XX-XX #

Added #

  • Add .yaml docs

0.0.3 2024-XX-XX #

Added #

  • Add doc comments

0.0.2+2 2024-XX-XX #

Changed #

  • Update name in Readme

0.0.2+1 2024-XX-XX #

Changed #

  • Update Readme and Add License

0.0.2 2024-XX-XX #

Fixed #

  • Fix Error with null data in onCompleteSucsses CallBack

0.0.1 2024-XX-XX #

Added #

  • First release, with simple example project
9
likes
140
points
85
downloads

Documentation

API reference

Publisher

unverified uploader

Weekly Downloads

Comprehensive Flutter package for Moamalat payment gateway integration with native Android SDK and WebView support, featuring intelligent auto-selection and Libya-focused currency handling.

Repository (GitHub)
View/report issues

License

MIT (license)

Dependencies

crypto, flutter, flutter_inappwebview

More

Packages that depend on moamalat_payment

Packages that implement moamalat_payment