The main goal of the app is to allows the owner of e-wallets to pay for goods and services. The app is used by public transportation companies in Africa; it can be also utilized in other similar areas. The app supports e-wallets based on Mifare Classic NFC tags. These tags are anonymous but they implement access restrictions on the hardware level.
There are 2 modes of the mobile app behavior: vendor and operator. Vendors provide a recharge of e-wallets; money are transferred from an account in a vendor profile to e-wallets of regular users. Operators receive payments from users' e-wallets for their services; they also have an account in their profile where money amounts are accumulated.
The app supports offline functioning: in the vendor mode app can load e-wallets, in the operator mode app can perform payments. App saves all the offline transactions and synchronizes them into backend when network connection is available.
Vendor scenario: after a successful login the predefined amount of money is transferred from a vendor's account to the app. Then a vendor can charge e-wallets using NFC adapter of Android smartphone. Charging transaction can be cancelled later, in this case money will be refunded into vendor's account. The vendor can also check the balance of e-wallet.
Operator scenario: after a successful login an operator can get a payment from any e-wallet via NFC adapter of Android smartphone. An operator can also cancel a payment, in this case money will be refunded to the same e-wallet which the cancelling payment transaction was done from.
Payments for public transportation services: when being used as a tool for public transportation payments, the app communicates with a NFC tag via remote NFC adapter which is connected with Android smartphone via Bluetooth. The Android smartphone is located in a cabin, and an NFC adapter in a bus interior is used as a payment terminal for passengers. The fare depends on an actual route (which is defined via Android Location Service) and travel time.
Tools and Technologies