midtrans_sdk 0.4.0
midtrans_sdk: ^0.4.0 copied to clipboard
A Flutter plugin for Midtrans Mobile SDK. Supports iOS and Android.
import 'package:flutter/material.dart';
import 'package:midtrans_sdk/midtrans_sdk.dart';
import 'package:flutter_dotenv/flutter_dotenv.dart' as DotEnv;
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await DotEnv.load();
runApp(MyApp());
}
class MyApp extends StatefulWidget {
@override
_MyAppState createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
MidtransSDK? _midtrans;
@override
void initState() {
super.initState();
initSDK();
}
void initSDK() async {
_midtrans = await MidtransSDK.init(
config: MidtransConfig(
clientKey: DotEnv.env['MIDTRANS_CLIENT_KEY'] ?? "",
merchantBaseUrl: DotEnv.env['MIDTRANS_MERCHANT_BASE_URL'] ?? "",
colorTheme: ColorTheme(
colorPrimary: Theme.of(context).colorScheme.secondary,
colorPrimaryDark: Theme.of(context).colorScheme.secondary,
colorSecondary: Theme.of(context).colorScheme.secondary,
),
),
);
_midtrans?.setUIKitCustomSetting(
skipCustomerDetailsPages: true,
);
_midtrans!.setTransactionFinishedCallback((result) {
print(result.toJson());
});
}
@override
void dispose() {
_midtrans?.removeTransactionFinishedCallback();
super.dispose();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: Center(
child: ElevatedButton(
child: Text("Pay Now"),
onPressed: () async {
_midtrans?.startPaymentUiFlow(
token: DotEnv.env['SNAP_TOKEN'],
);
},
),
),
),
);
}
}
copied to clipboard