easymerchant_reader_sdk 0.1.3
easymerchant_reader_sdk: ^0.1.3 copied to clipboard
EasyMerchant MagTek Mobile Reader SDK for Flutter. Connect MagTek BLE readers, collect encrypted card data (ARQC), and charge via client-token based payments with light/dark native UI screens.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:easymerchant_reader_sdk/magteksdk.dart';
import 'em_environment_config.dart';
import 'payment_screen.dart';
/// Run: `flutter run --dart-define-from-file=env.json`
const String kEmEnvironment =
String.fromEnvironment('EM_ENVIRONMENT', defaultValue: EmEnvironmentConfig.sandbox);
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final _magteksdk = Magteksdk();
String _platformVersion = 'Unknown';
bool get _canGenerateToken =>
kEmApiKey.isNotEmpty && kEmApiSecret.isNotEmpty;
@override
void initState() {
super.initState();
_loadPlatformVersion();
}
Future<void> _loadPlatformVersion() async {
try {
final version =
await _magteksdk.getPlatformVersion() ?? 'Unknown platform version';
if (!mounted) return;
setState(() => _platformVersion = version);
} on PlatformException {
if (!mounted) return;
setState(() => _platformVersion = 'Failed to get platform version.');
}
}
@override
Widget build(BuildContext context) {
return MaterialApp(
debugShowCheckedModeBanner: false,
theme: ThemeData(useMaterial3: true, colorSchemeSeed: const Color(0xFF1757D9)),
home: PaymentScreen(
environment: kEmEnvironment,
canGenerateToken: _canGenerateToken,
platformVersion: _platformVersion,
),
);
}
}