Logo Lanfrica

Will-create/mobilemoney-psc

Domaine:

digital infrastructure

Type de record:

software
Créateur:
Wil
Hôte:
Payment sans contact par qrcode burkina faso # NFC Contactless Payment App A React Native mobile application that enables contactless mobile money transfers between smartphones using NFC technology. Optimized for OrangeMoney, MoveMoney, and TélésaleMoney with extensible USSD plan architecture. ## Features - **NFC Peer-to-Peer**: Transfer payment requests between devices via NFC - **Multi-Operator Support**: Pre-configured for OrangeMoney, MoveMoney, TélésaleMoney - **USSD Plan Composer**: Extensible framework for adding new operators - **Secure Authentication**: PIN and biometric authentication with device-backed keys - **Encrypted Storage**: Local transaction history with AES-256-GCM encryption - **Cross-Platform**: Android (full NFC support) and iOS (limited NFC, QR fallback) ## Architecture ### Core Services - **NFCService**: Handles NFC peer-to-peer communication and NDEF payload creation/verification - **USSDService**: Executes operator-specific USSD sequences for payment completion - **CryptoService**: Manages device-backed keypairs, payload signing, and PIN hashing - **StorageService**: Encrypted local database for transactions, settings, and USSD plans ### Security Model - Device-backed asymmetric keypairs for transaction signing - PIN hashing with Argon2 (production) or PBKDF2 fallback - NDEF payload signature verification to prevent tampering - Anti-replay protection with timestamp + UUID + nonce - AES-256-GCM encryption for data at rest ## Getting Started ### Prerequisites - Node.js 18+ - React Native development environment - Android Studio (for Android) - Xcode (for iOS) ### Installation 1. Install dependencies: ```bash npm install ``` 2. Install iOS dependencies: ```bash cd ios && pod install && cd .. ``` 3. Start the development server: ```bash npm run dev ``` ### Platform Setup #### Android - Ensure NFC permissions are granted - USSD execution requires CALL_PHONE permission - Uses TelephonyManager.sendUssdRequest() on API 26+ #### iOS - Limited NFC support (tag reading/writing …