easymerchantsdk 0.0.3
easymerchantsdk: ^0.0.3 copied to clipboard
EasyMerchantSDK
example/lib/main.dart
import 'dart:convert';
import 'dart:io';
import 'package:easymerchantsdk/easymerchantsdk.dart';
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
String _platformVersion = 'Unknown';
final Easymerchantsdk easymerchant = Easymerchantsdk();
String amount = "";
final _scaffoldMessengerKey = GlobalKey<ScaffoldMessengerState>();
TextEditingController textEditingController = TextEditingController();
@override
void initState() {
super.initState();
WidgetsBinding.instance.addPostFrameCallback((_) {
initPlatformState();
if (Platform.isIOS) {
initializeViewController();
}
});
}
Future<void> initPlatformState() async {
try {
final version =
await easymerchant.getPlatformVersion() ?? 'Unknown platform version';
setState(() {
_platformVersion = version;
});
} catch (e) {
showSnackbar('Failed to get platform version: $e');
}
}
Future<void> initializeViewController() async {
try {
await easymerchant.setViewController();
print('ViewController initialized successfully');
} catch (e) {
print('Failed to initialize ViewController: $e');
showSnackbar('Failed to initialize ViewController: $e');
}
}
Future<void> billingreq() async {
try {
Map<String, dynamic> additionalInfoRequest = {
"name": "Test User",
"email": "test@gmail.com",
"phone_number": "9465351125",
"country_code": "91",
"description": "Test"
};
Map<String, dynamic> billingInfo = {
"address": "Mohali, Punjab",
"country": "India",
"state": "Punjab",
"city": "Anandpur Sahib",
"postal_code": "140118",
"additional_info": additionalInfoRequest,
};
String jsonString = json.encode(billingInfo);
final result = await easymerchant.billing(
textEditingController.text.toString(),
jsonString,
"staging",
"mobilesdk1980IUuCzwWl",
"mobilesdk1980LVHnN0Oh"
);
setState(() {
amount = result ?? 'Unknown billing info';
});
print('Result is here: $result');
} catch (e) {
showSnackbar('Failed to get billing: $e');
}
}
Future<void> makePayment() async {
if (textEditingController.text.isEmpty) {
showSnackbar('Please enter an amount');
return;
}
try {
Map<String, dynamic> additionalInfoRequest = {
'name': 'Test User',
'email': 'test@gmail.com',
'phone_number': "9465351125",
'country_code': "91",
"description": "Test",
};
Map<String, dynamic> jsonRequest = {
'address': "Mohali, Punjab",
'country': 'India',
'state': "Punjab",
'city': "Anandpur Sahib",
"postal_code": "140118",
"additional_info": additionalInfoRequest,
};
String jsonRequestt = jsonEncode(jsonRequest);
final result = await easymerchant.makePayment(
textEditingController.text,
jsonRequestt,
"staging",
"mobilesdk1980IUuCzwWl",
"mobilesdk1980LVHnN0Oh"
);
if (result != null) {
showSnackbar(result);
setState(() {
amount = result;
});
print("Payment Response: $result");
} else {
setState(() {
amount = 'Payment failed';
});
showSnackbar("Payment failed");
}
} catch (e) {
showSnackbar('Payment error: $e');
}
}
void showSnackbar(String message) {
_scaffoldMessengerKey.currentState?.showSnackBar(SnackBar(content: Text(message)));
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: GestureDetector(
onTap: () {
FocusScope.of(context).unfocus();
},
child: Scaffold(
key: _scaffoldMessengerKey,
appBar: AppBar(
title: const Text('Easy Merchant SDK Example'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('Running on: $_platformVersion\n'),
Padding(
padding: const EdgeInsets.all(25),
child: TextFormField(
keyboardType: TextInputType.number,
controller: textEditingController,
decoration: InputDecoration(
labelText: "Amount",
border: OutlineInputBorder(),
),
),
),
Text("Result: ${textEditingController.text.toString()}\n"),
if (Platform.isIOS)
ElevatedButton(
onPressed: () => billingreq(),
child: const Text('Pay Now (iOS)'),
),
if (Platform.isAndroid)
ElevatedButton(
onPressed: () async {
await makePayment();
},
child: const Text("Pay Now (Android)"),
),
],
),
),
),
),
);
}
}