swirepay_sdk 1.0.0 copy "swirepay_sdk: ^1.0.0" to clipboard
swirepay_sdk: ^1.0.0 copied to clipboard

outdated

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 = "";
  String? 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(() {});

  }
}
0
likes
0
points
25
downloads

Publisher

unverified uploader

Weekly Downloads

A new swirepay_sdk in flutter.

License

unknown (license)

Dependencies

flutter, http, webview_flutter

More

Packages that depend on swirepay_sdk

Packages that implement swirepay_sdk