itc_sunmi_card_reader 1.0.0
itc_sunmi_card_reader: ^1.0.0 copied to clipboard
A Flutter plugin for SUNMI POS card reading functionality. Enables card scanning, EMV processing, and data extraction on SUNMI Android devices only.
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.
1.0.0 - 2025-09-04 #
Added #
- Initial release of ITC SUNMI Card Reader plugin
- EMV card processing support for SUNMI devices
- Card data extraction (number, expiry, cardholder name, service code)
- Track 1 and Track 2 data access
- Real-time scan status callbacks
- Card type detection (Visa, MasterCard, UnionPay, Amex, JCB, RuPay)
- App selection handling for multiple payment apps
- Comprehensive error handling and recovery
- Support for chip cards, magnetic stripe, and contactless payments
- Utility methods for data formatting (card number, expiry date)
- Example app demonstrating plugin usage
Features #
- Android-only support (SUNMI devices exclusively)
- Minimum SDK 21 (Android 5.0+)
- Flutter 3.3.0+ compatibility
- MIT License
- Real-time status updates during scanning
- Automatic card type detection
- EMV-compliant processing
Supported Devices #
- SUNMI P2 series
- SUNMI P2 Pro
- SUNMI P2 Lite
- SUNMI V2 series
- Other SUNMI POS terminals with card reading capabilities
Dependencies #
- plugin_platform_interface: ^2.0.2
- SUNMI PayLib SDK 2.0.07
- SUNMI Printer Library 1.0.15
- BouncyCastle cryptography library 1.70
Documentation #
- Comprehensive README with usage examples
- Complete API documentation
- Troubleshooting guide
- Device compatibility information
- Security and privacy guidelines
API Methods #
ItcSunmiCardReaderService.startCardScan()- Start card scanningItcSunmiCardReaderService.stopCardScan()- Stop scanningItcSunmiCardReaderService.selectApp()- Select payment appItcSunmiCardReaderService.formatCardNumber()- Format card numberItcSunmiCardReaderService.formatExpiryDate()- Format expiry dateItcSunmiCardReaderService.getCardTypeDisplayName()- Get card type display name
Data Models #
CardScanResult- Complete card data containerCardScanStatus- Scan status enumerationCardScanStatusUpdate- Status update model
Example App #
- Simple demonstration app included
- Clean UI with status updates
- Error handling examples
- App selection dialog implementation