secure_emi_sdk 0.0.2 copy "secure_emi_sdk: ^0.0.2" to clipboard
secure_emi_sdk: ^0.0.2 copied to clipboard

SecureEMI Flutter Plugin provides a secure bridge to the SecureEMI Android SDK, enabling merchants to integrate EMI mandate setup, KYC verification, and installment management into Flutter applications.

example/lib/main.dart

import 'dart:async';

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:secure_emi_sdk/models/kyc_error.dart';
import 'package:secure_emi_sdk/models/kyc_input.dart';
import 'package:secure_emi_sdk/models/kyc_result.dart';
import 'package:secure_emi_sdk/models/register_user.dart';
import 'package:secure_emi_sdk/models/sdk_config.dart';
import 'package:secure_emi_sdk/secure_emi_sdk.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 _secureEmiSdkPlugin = SecureEmiSdk();

  @override
  void initState() {
    super.initState();
    initPlatformState();
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String platformVersion;
    // Platform messages may fail, so we use a try/catch PlatformException.
    // We also handle the message potentially returning null.
    try {
      platformVersion = await _secureEmiSdkPlugin.getPlatformVersion() ?? 'Unknown platform version';
    } on PlatformException {
      platformVersion = 'Failed to get platform version.';
    }

    // If the widget was removed from the tree while the asynchronous platform
    // message was in flight, we want to discard the reply rather than calling
    // setState to update our non-existent appearance.
    if (!mounted) return;

    setState(() {
      _platformVersion = platformVersion;
    });
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Plugin example app')),
        body: Center(
          child: Column(
            mainAxisAlignment: MainAxisAlignment.center,
            children: [
              ElevatedButton(
                onPressed: () {
                  try {
                    _secureEmiSdkPlugin.init(SdkConfig(clientId: 'ae2704df-ed23-11f0-ab02-90fba6833472'), null);
                  } catch (err) {
                    print("Error Occurred: $err");
                  }
                },
                child: Text("Init()"),
              ),

              SizedBox(height: 24),

              ElevatedButton(
                onPressed: () {
                  try {
                    final result = _secureEmiSdkPlugin.registerUser(RegisterUser(firstName: "Test", lastName: "User", mobile: "9999999999", email: "[email protected]"));
                    print("registerUser():  $result");
                  } catch (err) {
                    print("Error Occurred: $err");
                  }
                },
                child: Text("registerUser()"),
              ),

              SizedBox(height: 24),

              ElevatedButton(
                onPressed: () {
                  try {
                    final result = _secureEmiSdkPlugin.startKyc(KycInput(requestId: "test_request_id_12345"));
                    print("startKyc():  $result");
                  } catch (err) {
                    print("Error Occurred: $err");
                  }
                },
                child: Text(" startKyc()"),
              ),

              SizedBox(height: 24),

              ElevatedButton(
                onPressed: () async {
                  try {
                    final result = await _secureEmiSdkPlugin.getKycStatus();
                    if (result is KycSuccess) {
                      switch (result.status) {
                        case UserKycStatus.pending:
                          print("getKycStatus():  KYC is still pending.");
                          break;

                        case UserKycStatus.submitted:
                          print("getKycStatus():  KYC has been submitted and is under review.");
                          break;

                        case UserKycStatus.success:
                          print("getKycStatus():  KYC is successfully completed.");
                          break;

                        case UserKycStatus.failed:
                          print("getKycStatus():  KYC has failed.");
                          break;

                        case UserKycStatus.additionalDocRequired:
                          print("getKycStatus():  KYC requires additional documents.");
                          break;
                      }
                    } else if (result is KycFailure) {
                      if (result.error is NetworkError) {
                        print("getKycStatus():  NetworkError");
                      } else if (result.error is ApiError) {
                        final err = result.error as ApiError;
                        print("getKycStatus():  ApiError: ${err.message}");
                      } else if (result.error is InvalidResponse) {
                        print("getKycStatus():  InvalidResponse");
                      }
                    }
                  } catch (err) {
                    print("Error Occurred: $err");
                  }
                },
                child: Text("getKycStatus()"),
              ),

              SizedBox(height: 24),
            ],
          ),
        ),
      ),
    );
  }
}
1
likes
135
points
75
downloads

Publisher

unverified uploader

Weekly Downloads

SecureEMI Flutter Plugin provides a secure bridge to the SecureEMI Android SDK, enabling merchants to integrate EMI mandate setup, KYC verification, and installment management into Flutter applications.

Homepage

Documentation

API reference

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on secure_emi_sdk

Packages that implement secure_emi_sdk