flutteremv 0.0.1
flutteremv: ^0.0.1 copied to clipboard
Another pakage for topwisemp35p to support another set of the pos device. it uses NIBSS processor
flutteremv #
A Plugin used to interfering Topwise Mp35p pos device.
Getting Started #
How to use #
This plugin exposes two APIs:
1. Initialize #
Initialize the plugin. This should be done once.
import 'package:flutteremv/flutteremv.dart';
class _MyAppState extends State<MyApp> {
final _flutteremvPlugin = Flutteremv();
@override
void initState() {
_flutteremvPlugin.initialize("masterKey", "pinkey");
super.initState();
}
}
2. Initialize Payment #
Create an object of the Transaction class and pass it to the initializePayment function
Future<void> initPayment() async {
_flutteremvPlugin.debitcard("2000");
}
3. Listen to card state #
listening to card event to know the state of your card you can do whatever you like with the state
_flutteremvPlugin.stateStream.listen((values) async {
print(" card state $values");
// Handle the state change here
switch (values["state"]) {
case "Loading":
showDialog(context: context, builder: (builder)=> AlertDialog(title: Text("Loading"),));
return ;
case "CardData":
eventresult = values;
return ;
case "CardReadTimeOut":
return ;
case "CallBackError":
return ;
case "CallBackCanceled":
return ;
case "CallBackTransResult":
return ;
case "CardDetected":
var result = await Navigator.push(
context,
MaterialPageRoute(builder: (context) => Carpin(amount: "200",)),
);
if(result != null){
_flutteremvPlugin.enterpin(result);
}
return ;
}
});
4. customise card pin layout #
send pin entered back to the sdk card wait for response from the event you listen to earlier
_flutteremvPlugin.enterpin(result);
4. Withdraw receipt printing #
Create an object of the Print class and pass it to the startprinting function
var args = Print(
marchantname: "VERDANT MICROFINANCE BANK",
datetime: "27 Jan 2023,06:55AM",
terminalid: "2LUX4199",
merchantid: "2LUXAA00000001",
transactiontype: "CARD WITHDRAWAL",
copytype: "Merchant",
rrn: "561409897476",
stan: "904165",
pan: "539983******1954",
expiry: "2303",
transactionstatus: "DECLINED",
responsecode: "55",
message: "Incorrect PIN",
appversion: "1.5.3",
amount: "200",
bottommessage: "Buy Airtime and Pay Electricity bills here anytime! AnyDAY!",
);
_topwisePlugin.startprinting(args).then((value) {print(value);});
6. Transfer receipt printing #
Create an object of the Print class and pass it to the startprinting function
var args = Print(
marchantname: "VERDANT MICROFINANCE BANK",
datetime: "27 Jan 2023,06:55AM",
terminalid: "2LUX4199",
merchantid: "2LUXAA00000001",
transactiontype: "CARD WITHDRAWAL",
accountname: "ODEJINMI TOLUWALOPE ABRAHAM",
copytype: "Merchant",
stan: "904165",
accountnumber: "3076302098",
bank: "First Bank",
transactionstatus: "DECLINED",
responsecode: "55",
message: "Incorrect PIN",
appversion: "1.5.3",
amount: "200",
bottommessage: "Buy Airtime and Pay Electricity bills here anytime! AnyDAY!",
);
_topwisePlugin.startprinting(args).then((value) {print(value);});
7. Customise printing #
when creating your ui for customise printing in consider the following
1. You can't use more than two widget in a row #
2. The sdk understand limited Widget which are Column, Row, container, Expanded, Text, Image, Divider #
3. if you are printing a list in the Ui, do not use ListView, you can use for loop #
4. Any widget used differently from the above listed, sdk will interpret it has space #
The TransactionMonitor class received after sdk is closed contains the below fields
String state;
String message;
bool status;
DebitCardRequestDto? transactionData;
Need more information? #
For further info about topwise's mobile SDKs, including setup, contact odejinmiabraham@gmail.com
if you feel like contributing to this sdk kindly do so and notify so i can merge and publish