foloosi_flutter_payment 1.0.5 copy "foloosi_flutter_payment: ^1.0.5" to clipboard
foloosi_flutter_payment: ^1.0.5 copied to clipboard

A Flutter plugin to integrate foloosi libraries for iOS and Android.

Foloosi Payment #

pub package

A Flutter plugin for making payments via Foloosi Payment Gateway. Fully supports Android and iOS.

<div style="text-align: center">
    <table>
        <tr>
            <td style="text-align: center">
                <img src="https://raw.githubusercontent.com/FoloosiTech/foloosi_flutter_payment/master/sample.gif" width="400" />
            </td>
        </tr>
    </table>
</div>

Installation #

In the dependencies: section of your pubspec.yaml, add the following line:

foloosi_flutter_payment: ^1.0.5

Import in your project:

import 'package:foloosi_flutter_payment/foloosi_flutter_payment.dart';

Basic Usage #

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool proceedToPayment = false;
  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

  void _proceeedToPayment() {
    setState(() {
      proceedToPayment = true;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      appBar: proceedToPayment
          ? null
          : AppBar(
              title: Text('Foloosi Payment Flutter'),
            ),
      body: proceedToPayment
          ? FoloosiPayment(
              headerText: 'Foloosi Payment',
              loaderText: "Processing Request",
              merchantKey: 'YOUR_FOLOOSI_MERCHANT_KEY',
              secretKey: 'YOUR_FOLOOSI_SECRET_KEY',
              transactionAmount: 1,
              currency: 'AED',
              customerName: 'Omar Ali',
              customerEmail: 'tech@foloosi.com',
              customerMobile: '+971000000000',
              customerAddress: 'No 2, Test Street',
              customerCity: 'Dubai',
              billingState: 'Dubai',
              billingPostalCode: '000000', // For UAE, pass postal code as 000000
              billingCountry: 'ARE', // Three Digit ISO Country Code,
              optional1: '', // Optional Params 
              optional2: '', // Optional Params 
              optional3: '', // Optional Params 
              onPaymentClose: (value) {
                print("Payment Error : $value");
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(value.toString()),
                  duration: Duration(seconds: 3),
                ));
              },
              onError: (value) {
                print("Payment Error : $value");
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(value.toString()),
                  duration: Duration(seconds: 3),
                ));
              },
              onSuccess: (transactionDetails) {
                print("Payment Success : $transactionDetails");
                print(
                    json.decode(transactionDetails)['data']['transaction_no']);
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(
                      json.decode(transactionDetails)['status'].toString()),
                  duration: Duration(seconds: 3),
                ));
              },
            )
          : Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  RaisedButton(
                    onPressed: _proceeedToPayment,
                    child: new Text(
                      "Proceed to Payment",
                    ),
                  )
                ],
              ),
            ),
    );
  }
}

Sample Dart Program #

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:foloosi_flutter_payment/foloosi_flutter_payment.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Foloosi Payment Flutter',
      debugShowCheckedModeBanner: false,
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key}) : super(key: key);

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  bool proceedToPayment = false;
  final GlobalKey<ScaffoldState> _scaffoldKey = new GlobalKey<ScaffoldState>();

  void _proceeedToPayment() {
    setState(() {
      proceedToPayment = true;
    });
  }

    @override
  Widget build(BuildContext context) {
    return Scaffold(
      key: _scaffoldKey,
      appBar: proceedToPayment
          ? null
          : AppBar(
              title: Text('Foloosi Payment Flutter'),
            ),
      body: proceedToPayment
          ? FoloosiPayment(
              headerText: 'Foloosi Payment',
              loaderText: "Processing Request",
              merchantKey: 'YOUR_FOLOOSI_MERCHANT_KEY',
              secretKey: 'YOUR_FOLOOSI_SECRET_KEY',
              transactionAmount: 1,
              currency: 'AED',
              customerName: 'Omar Ali',
              customerEmail: 'tech@foloosi.com',
              customerMobile: '+971000000000',
              customerAddress: 'No 2, Test Street',
              customerCity: 'Dubai',
              billingState: 'Dubai',
              billingPostalCode: '000000', // For UAE, pass postal code as 000000
              billingCountry: 'ARE', // Three Digit ISO Country Code
              optional1: '', // Optional Params 
              optional2: '', // Optional Params 
              optional3: '', // Optional Params 
              onPaymentClose: (value) {
                print("Payment Error : $value");
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(value.toString()),
                  duration: Duration(seconds: 3),
                ));
              },
              onError: (value) {
                print("Payment Error : $value");
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(value.toString()),
                  duration: Duration(seconds: 3),
                ));
              },
              onSuccess: (transactionDetails) {
                print("Payment Success : $transactionDetails");
                print(
                    json.decode(transactionDetails)['data']['transaction_no']);
                setState(() {
                  proceedToPayment = false;
                });
                _scaffoldKey.currentState.showSnackBar(SnackBar(
                  content: Text(
                      json.decode(transactionDetails)['status'].toString()),
                  duration: Duration(seconds: 3),
                ));
              },
            )
          : Center(
              child: Column(
                mainAxisAlignment: MainAxisAlignment.center,
                children: <Widget>[
                  RaisedButton(
                    onPressed: _proceeedToPayment,
                    child: new Text(
                      "Proceed to Payment",
                    ),
                  )
                ],
              ),
            ),
    );
  }
}

Note: If you're using the foloosi secret and merchant keys as a string in flutter, remember to escape the $ dollar signs although it is recommended to load these from your backend

merchantKey: 'YOUR_MERCHANT_KEY',
secretKey: 'YOUR_SECRET_KEY',

Properties #

Here is a list of properties available:

Name Type Required Description
headerText String false the title of the widget's appbar
onError Function true function to run on payment error
onSuccess Function true function to run on payment success
loaderText String false text to display under the loader
merchantKey String true your foloosi merchant key
secretKey String true your foloosi secret key
referenceToken String false the reference token - generates automatically if null
redirectUrl String false the redirect url
transactionAmount String - transaction amount - required if referenceToken is null
currency String - transaction currency - required if referenceToken is null
customerName String false customer name - auto render in payment popup if passed
customerEmail String false customer email - auto render in payment popup if passed
customerMobile String false customer mobile - auto render in payment popup if passed
customerAddress String false customer address - auto render in payment popup if passed
customerCity String false customer city - auto render in payment popup if passed
billingState String false Billing State - auto render in payment popup if passed
billingPostalCode String false Billing Postcode - auto render in payment popup if passed
billingCountry String false Billing Country - auto render in payment popup if passed
optional1 String false Optional Parameter - Pass whatever you need
optional2 String false Optional Parameter - Pass whatever you need
optional3 String false Optional Parameter - Pass whatever you need
paymentCancellationMsg String false message returned when user cancels the payment
debugMode bool false to enable or disable package logs

Developed by #

Foloosi

License #

Copyrights (c) 2021 Foloosi

3
likes
10
pub points
11%
popularity

Publisher

unverified uploader

A Flutter plugin to integrate foloosi libraries for iOS and Android.

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

flutter, flutter_webview_plugin, http

More

Packages that depend on foloosi_flutter_payment