swirepay_sdk 1.0.5
swirepay_sdk: ^1.0.5 copied to clipboard
A new swirepay_sdk in flutter.
example/lib/main.dart
import 'package:flutter/material.dart';
import 'package:swirepay_sdk/enum/currency_type.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';
import 'package:swirepay_sdk/enum/currency_type.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();
TextEditingController nameController = TextEditingController();
TextEditingController emailController = TextEditingController();
TextEditingController phoneNumberController = TextEditingController();
bool canShowLogo = false;
String? responseCode = "";
dynamic? responseBody = "";
var currencyType = CurrencyType.INR;
@override
void initState() {
super.initState();
}
@override
Widget build(BuildContext context) {
// secretKeyController.text = "sk_test_lB3YUJXANroA82Tsta8a6Gfnbnr9SiFn";
//secretKeyController.text = "sk_test_8lvbtZJyWDMeDZCt105peveEf1SPFHVo";//india navven
// secretKeyController.text = "sk_test_dGEOrl2wzQ9nVLpQxq1WmdZJNDPJB6zF";
//secretKeyController.text = "sk_test_52Y1EaICF09by7oT8HCOpkyBdFFQGp6g";//stagingUs account 1010
// secretKeyController.text = "sk_test_dGEOrl2wzQ9nVLpQxq1WmdZJNDPJB6zF";////Staging current
// secretKeyController.text = "sk_test_Jwel3gTMFfTmgIQxythgXQoAhAlw3zoo";
//secretKeyController.text = "sk_test_Jwel3gTMFfTmgIQxythgXQoAhAlw3zoo";//Staging
// secretKeyController.text = "sk_live_lChDFrfP2AsJKRQ2MJTmHOlxIygqKAwl";
// secretKeyController.text = "sk_live_nzvVF02wXb5007I30YwzQVtFSmbuytAC";//SWIREPAY-POOL-IN-A/C-CASHFREE
// secretKeyController.text = "sk_test_RwX1bsEkJJ8vF1SfMfsSKqoVOazKUy7f";//SWIREPAY-POOL-IN-A/C-CASHFREE
// secretKeyController.text = "sk_test_Jwel3gTMFfTmgIQxythgXQoAhAlw3zoo";//Staging
// secretKeyController.text = "sk_test_tUZXg0CV8jxdp3azTlGqd7eds8uxduZ4";//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
// secretKeyController.text = "sk_test_rN1bo2S5Pro5IwsC5uePn50mClE4sIgh";//VGKeyIndia
// secretKeyController.text = "sk_test_OXiwUdAOFyCfrQgplrnWWVMxyGydaspY";//VGKeyUS
// secretKeyController.text = "sk_test_6aZ5HtPt61GUOQgFl5aZz0qWk7ZcE391";//jayaramKey
//secretKeyController.text = "sk_test_cNhv6AWrzHH2GWeSEF4XlYyHAxCCCdVB";//naveen testkey
//secretKeyController.text = "sk_test_GMP6MilKUyOMxMervlPKgn43arU9lxGg";//Us testkey
//secretKeyController.text = "sk_test_SwCf1ewMjHxz3SRv63klPoIjfaiuEp49";//jaya ramUs testkey
//secretKeyController.text = "sk_test_dGEOrl2wzQ9nVLpQxq1WmdZJNDPJB6zF";//amuthan test ind key
//secretKeyController.text = "sk_live_KiTQiOBe7Ij4fCBONyndyQBRj0Ytjvu6"; // mercy live key ind
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,
),
TextField(
controller: nameController,
decoration: const InputDecoration(
hintText: "Name",
),
),
TextField(
controller: emailController,
decoration: const InputDecoration(
hintText: "Email",
),
),
TextField(
controller: phoneNumberController,
decoration: const InputDecoration(
hintText: "Phone Number",
),
),
DropdownButton<CurrencyType>(
value: currencyType,
isExpanded: true,
items: CurrencyType.values.map((CurrencyType value) {
return DropdownMenuItem<CurrencyType>(
value: value,
child: Text(value.toShortString()),
);
}).toList(),
onChanged: (value) {
setState(() {
currencyType = value!;
});
},
),
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());
}
Customer customer = Customer(name: nameController.text, email: emailController.text, phoneNumber: phoneNumberController.text);
OrderInfo orderInfo = OrderInfo(emailController.text, phoneNumberController.text, currencyType.toShortString(), "Test", "IND Test", amount);
SuccessResponse? response = await SwirepaySdk.doPayment(
context, orderInfo, customer, canShowLogo,
themeData: Theme.of(context));
responseCode = response?.responseCode;
responseBody = response?.responseBody;
setState(() {});
}
}