swirepay_sdk 1.0.4
swirepay_sdk: ^1.0.4 copied to clipboard
A new swirepay_sdk in flutter.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:swirepay_sdk/model/success_response.dart';
import 'package:swirepay_sdk/swirepay_sdk.dart';
import 'package:swirepay_sdk_example/checkout_main.dart';
import 'package:swirepay_sdk_example/screens/invoice_screen.dart';
import 'package:swirepay_sdk_example/screens/payment_link_screen.dart';
import 'package:swirepay_sdk_example/screens/payment_screen.dart';
import 'package:swirepay_sdk_example/screens/subscription_screen.dart';
import 'package:swirepay_sdk/model/customer.dart';
import 'package:swirepay_sdk/model/order_info.dart';
import 'package:swirepay_sdk/model/sp_billing_address.dart';
import 'package:swirepay_sdk/model/sp_shipping_address.dart';
void main() {
runApp(const MyApp());
// runApp(const CheckoutMain());
}
class MyApp extends StatefulWidget {
const MyApp({Key? key}) : super(key: key);
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
TextEditingController secretKeyController = TextEditingController();
TextEditingController amountController = TextEditingController();
bool canShowLogo = false;
String? responseCode = "";
dynamic? responseBody = "";
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
// secretKeyController.text = "sk_test_lB3YUJXANroA82Tsta8a6Gfnbnr9SiFn";
// secretKeyController.text = "sk_test_8lvbtZJyWDMeDZCt105peveEf1SPFHVo";
// secretKeyController.text = "sk_test_Jwel3gTMFfTmgIQxythgXQoAhAlw3zoo";
// secretKeyController.text = "sk_test_Jwel3gTMFfTmgIQxythgXQoAhAlw3zoo";//Staging
// secretKeyController.text = "sk_test_KQccPk3XDLoGLjGzwdQ77pX3a68DX5X0";//ProdTest
secretKeyController.text = "sk_live_v0GcAFxFLJkfMzspoUFSNGizT6BjvwoW";//ProdLive
// secretKeyController.text = "sk_live_dqftiF5o9UUkPCNgqVSKT9Jv637aDwxR";//IND
// secretKeyController.text = "sk_live_0IhpyQ2Q81iUQmSxqkmXQ6ulxlswlshQ";//US
return MaterialApp(
debugShowCheckedModeBanner: false,
home: Scaffold(
appBar: AppBar(
title: const Text('Swirepay SDK Demo'),
),
body: SingleChildScrollView(
child: Center(
child: Column(
children: [
TextField(
controller: secretKeyController,
decoration: const InputDecoration(
hintText: "Enter key",
),
),
TextField(
controller: amountController,
decoration: const InputDecoration(
hintText: "Amount",
),
keyboardType: TextInputType.number,
),
Row(
mainAxisAlignment: MainAxisAlignment.start,
children: [
Flexible(
child: Checkbox(
value: canShowLogo,
onChanged: (value) {
canShowLogo = value ?? false;
setState(() {});
})),
const Flexible(
child: Text("Show logo"),
)
],
),
Builder(
builder: (context) => ElevatedButton(
onPressed: () {
initiateSDKButtonPress(context);
},
child: const Text("INITIATE SDK")),
),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
paymentLinkButtonPress(context);
},
child: const Text("PAYMENT LINK"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
invoiceButtonPress(context);
},
child: const Text("INVOICE"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
subscriptionButtonPress(context);
},
child: const Text("SUBSCRIPTION BUTTON"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
paymentMethodButtonPress(context);
},
child: const Text("PAYMENT METHOD"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
accountButtonPress(context);
},
child: const Text("ACCOUNT"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
paymentButtonPress(context);
},
child: const Text("PAYMENT BUTTON"));
}),
Builder(builder: (context) {
return ElevatedButton(
onPressed: () {
checkoutButtonPress(context);
},
child: const Text("CHECKOUT"));
}),
Text(
"$responseCode",
),
Text("$responseBody")
],
),
),
),
),
);
}
initiateSDKButtonPress(BuildContext context) {
String key = secretKeyController.text;
if (key != null && key != "") {
bool isInitiated = SwirepaySdk.initiateSDK(key);
if (isInitiated) {
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("Key Initialized!")));
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("Key Initialized failed.")));
}
} else {
ScaffoldMessenger.of(context).showSnackBar(
const SnackBar(content: Text("Input a valid key to initialize sdk")));
}
}
paymentLinkButtonPress(BuildContext context) {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => const PaymentLinkScreen()));
}
invoiceButtonPress(BuildContext context) {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => const Invoice()));
}
subscriptionButtonPress(BuildContext context) {
Navigator.of(context).push(
MaterialPageRoute(builder: (context) => const SubscriptionScreen()));
}
paymentMethodButtonPress(BuildContext context) async {
if (SwirepaySdk.secretKey != null && SwirepaySdk.secretKey != "") {
SuccessResponse? response =
await SwirepaySdk.createPaymentMethod(context);
responseCode = response?.responseCode;
responseBody = response?.responseBody;
setState(() {});
} else {
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("Key not initialized!")));
}
}
accountButtonPress(BuildContext context) async {
if (SwirepaySdk.secretKey != null && SwirepaySdk.secretKey != "") {
SuccessResponse? response = await SwirepaySdk.createAccount(context);
responseCode = response?.responseCode;
responseBody = response?.responseBody;
setState(() {});
} else {
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("Key not initialized!")));
}
}
paymentButtonPress(BuildContext context) {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => const PaymentScreen()));
}
checkoutButtonPress(BuildContext context) async {
int? amount = 0;
if (amountController.text.toString() == ""){
ScaffoldMessenger.of(context)
.showSnackBar(const SnackBar(content: Text("Amount shouldn't be empty")));
} else {
amount = int.parse(amountController.text.toString());
}
SPBillingAddress billingAddress = SPBillingAddress("Street","Chennai","TN","600030","IN");
SPShippingAddress shippingAddress = SPShippingAddress("Street","Chennai","TN","600030","IN");
Customer customer = Customer(name: "Muthu", email: "testaccountowner-stag+592@swirepay.com", phoneNumber: "+919845789562");
customer.billingAddress = billingAddress;
customer.shippingAddress = shippingAddress;
OrderInfo orderInfo = OrderInfo("testaccountowner-stag+592@swirepay.com", "+919845789562", "INR", "Test", "IND Test", amount);
SuccessResponse? response = await SwirepaySdk.doPayment(context, orderInfo, customer, canShowLogo, themeData: Theme.of(context));
responseCode = response?.responseCode;
responseBody = response?.responseBody;
setState(() {});
}
}