ezetap_sdk 0.2.6 copy "ezetap_sdk: ^0.2.6" to clipboard
ezetap_sdk: ^0.2.6 copied to clipboard

PlatformAndroid

Integrating the SDK will allow you to access Ezetap services in your application

ezetap_sdk #

pub package pub points

Welcome to Ezetap Payments Flutter SDK integration! You can easily collect payments from your existing android applications by integrating the SDK.

How integration works #

  1. Include the SDK in your mobile application to collect payments.
  2. SDK interfaces with a Service App, this App will be installed during run-time.
  3. Service App interfaces with the Card Device and Ezetap Servers to finish payment processing and notifies the status to SDK.

Prerequisites #

Supported on Android API version 21 or above.

Use this package as a library #

This will add a line like this to your package's pubspec.yaml (and run an implicit flutter pub get)

dependencies:
  ezetap_sdk: ^0.2.6

Import it #

Now in your Dart code, you can use:

import 'package:ezetap_sdk/ezetap_sdk.dart';

Methods Available #

 var json = {
      "prodAppKey": "Your prod app key",
      "demoAppKey": "Your demo app key",
      "merchantName": "merchantName",
      "userName": "userName",
      "currencyCode": 'INR',
      "appMode": "Your environment",
      "captureSignature": 'true',
      "prepareDevice": 'false',
      "captureReceipt": 'false'
    };
  
  EzetapSdk.initialize(json);
  EzetapSdk.prepareDevice();
  var sendReceiptJson = {
      "customerName": "customerName",
      "mobileNo": "mobileNo",
      "email": "emailId",
      "txnId": "transactionID"
    };
    
  EzetapSdk.sendReceipt(sendReceiptJson);
    var json = {
      "issueType": "issueType",
      "issueInfo": "issueInfo",
      "tags": [
        "tag1","tag2"
      ]
    };

  EzetapSdk.serviceRequest(json);
    var json = {
      "agentName": "username",
      "saveLocally": false
    };

  EzetapSdk.searchTransaction(json);
   var json = {
      "amount": "100",
      "options": {
        "amountTip": 0.0,
        "references": {
          "reference1": "sffr",
          "additionalReferences": [
    
          ]
        },
        "customer": {
    
        },
        "serviceFee": -1.0,
        "addlData": {
          "addl1": "addl1",
          "addl2": "addl2",
          "addl3": "addl3"
        },
        "appData": {
          "app1": "app1",
          "app2": "app2",
          "app3": "app3"
        }
      }
    };

  EzetapSdk.getTransaction(json);
   var json = {};
  EzetapSdk.checkForIncompleteTransaction(json);
//Pass the transactionId to this function
EzetapSdk.voidTransaction(String transactionID);
   var json = {"txnId": "transactionID"};
  EzetapSdk.attachSignature(json);
var json = {
  "amount": "123",
  "options": {
    "serviceFee": 100,
    “payToAccount”: “LABEL”,
    "paymentBy": "CREDIT OR DEBIT OR ANY (**To be used only if the service fee is being added.)",
    "paymentMode": "Card/Cash/Cheque/UPI/UPI_VOUCHER/RemotePay/BHARATQR/Brand_Offers/Brand_EMI/Normal_EMI/Wallet ",
    "providerName": "<NBFC> eg. ZestMoney. (**providerName and emiType are to be passed only if user wants to use ZestMoney. In this scenario, set \"paymentMode”:”EMI”)",
    "emiType": "NORMAL, BRAND, EMI",
    "references": {
      "reference1": "1234",
      "additionalReferences": [
        "addRef_xx1",
        "addRef_xx2"
      ]
    },
    "appData": {
      "walletAcquirer": "freecharge/ola_money/ etc.(**walletAcquirer are to be passed only if user sets \"paymentMode”:”Wallet”)"
    },
    "customer": {
      "name": "xyz",
      "mobileNo": "1234567890",
      "email": "abc@xyz.com"
    }
  }
};
  EzetapSdk.pay(json);
  //Pass the transactionId to this function
  EzetapSdk.printReceipt(String transactionID);
  //Pass the image as base64 string to this function
  EzetapSdk.printBitmap(String? base64Image);
  EzetapSdk.logout();
  var json = {"txnIds":[""]};
  EzetapSdk.stopPayment(json);
  EzetapSdk.scanBarcode();
   var json = {
     "amount": "100",
     "txnId": "transactionID"
   };
  EzetapSdk.refundTransaction(json);
  EzetapSdk.checkForUpdates();
  EzetapSdk.checkPrinterStatus();
  EzetapSdk.printTextReceipt(txtReceipt);
  EzetapSdk.showReceiptView(jsonEncode(receipt));
  EzetapSdk.getDeviceInfo();
Future<void> onPaymentClicked(json) async {
  String? result = await EzetapSdk.pay(json);
  if (!mounted) return;
  setState(() {
    _result = result;
  });
}
Future<void> onBarcodePressed() async {
  String? result = await EzetapSdk.scanBarcode();
  if (!mounted) return;
  setState(() {
    _result = result;
  });
}
Future<void> checkPrinterStatus() async {
    String? result = await EzetapSdk.checkPrinterStatus();
    if (!mounted) return;
    setState(() {
      _result = result;
    });
  }
Future<void> printTextReceipt() async {
   var txtReceipt = "-----------------------------------\n" +
           "           Receipt\n" +
           "-----------------------------------\n" +
           "\n" +
           "Date: January 9, 2024\n" +
           "Time: 12:30 PM\n" +
           "\n" +
           "-----------------------------------\n" +
           "\n" +
           "Items Purchased:\n" +
           "1. Item Name        10.00\n" +
           "2. Another Item     15.50\n" +
           "3. Yet Another Item 8.75\n" +
           "\n" +
           "-----------------------------------\n" +
           "\n" +
           "Subtotal:           34.25\n" +
           "Tax (8%):           2.74\n" +
           "Total Amount:       36.99\n" +
           "\n" +
           "-----------------------------------\n" +
           "\n" +
           "Payment Method:     Credit Card\n" +
           "\n" +
           "Card Number:        **** **** **** 1234\n" +
           "Expiry Date:        12/25\n" +
           "Authorization Code: 56789\n" +
           "\n" +
           "-----------------------------------\n" +
           "\n" +
           "Thank you for your purchase!\n" +
           "Please come again.\n" +
           "\n" +
           "-----------------------------------";

   String? result = await EzetapSdk.printTextReceipt(txtReceipt);
   if (!mounted) return;
   setState(() {
      _result = result;
   });
}
Future<void> showCustomReceiptView() async {
    final ByteData data = await rootBundle.load('assets/logo.png');
    final Uint8List bytes = data.buffer.asUint8List();
    ui.decodeImageFromList(bytes, (ui.Image img) async {
      ByteData? byteData = await img.toByteData(format: ui.ImageByteFormat.png);
      var receipt = [
        base64.encode(byteData?.buffer.asUint8List() as List<int>),
        "<div class=\"item\" style=\"text-align: center;\"><span style=\"font-size: 34;\"><big>Heading</big></span></div>",
        "<div class=\"item\"><span>Date:</span> <span>2024-02-12</span></div>",
        "<div class=\"item\"><span>Time:</span> <span>15:30</span></div>",
        "<div class=\"item\"><span>Receipt No:</span> <span>123456</span></div>",
        "<div class=\"item\"><span>Items:</span><ul><li>Item 1 - \$10</li><li>Item 2 - \$20</li><li>Item 3 - \$15</li></ul></div>",
        "<div class=\"item\"><span>Total:</span> <span>\$45</span></div>",
        "<div class=\"item\"><span>Date:</span> <span>2024-02-12</span></div>",
        "<div class=\"item\"><span>Time:</span> <span>15:30</span></div>",
        "<div class=\"item\"><span>Receipt No:</span> <span>123456</span></div>",
        "<div class=\"item\"><span>Items:</span><ul><li>Item 1 - \$10</li><li>Item 2 - \$20</li><li>Item 3 - \$15</li></ul></div>",
        "<div class=\"item\"><span>Total:</span> <span>\$45</span></div>",
        "<div class=\"item\"><span>Date:</span> <span>2024-02-12</span></div>",
        "<div class=\"item\"><span>Time:</span> <span>15:30</span></div>",
        "<div class=\"item\"><span>Receipt No:</span> <span>123456</span></div>",
        "<div class=\"item\"><span>Items:</span><ul><li>Item 1 - \$10</li><li>Item 2 - \$20</li><li>Item 3 - \$15</li></ul></div>",
        "<div class=\"item\"><span>Total:</span> <span>\$45</span></div>",
        "<div class=\"item\"><span>Date:</span> <span>2024-02-12</span></div>",
        "<div class=\"item\"><span>Time:</span> <span>15:30</span></div>",
        "<div class=\"item\"><span>Receipt No:</span> <span>123456</span></div>",
        "<div class=\"item\"><span>Items:</span><ul><li>Item 1 - \$10</li><li>Item 2 - \$20</li><li>Item 3 - \$15</li></ul></div>",
        "<div class=\"item\"><span>Total:</span> <span>\$45</span></div>",
        base64.encode(byteData?.buffer.asUint8List() as List<int>)
      ];
      try {
        String? result = await EzetapSdk.showReceiptView(jsonEncode(receipt));
        if (!mounted) return;
        setState(() {
          _result = result;
        });
      } on PlatformException catch (e) {
        if (!mounted) return;
        setState(() {
          _result = e.message.toString();
        });
      }
    });
  }

What you need #

  1. Flutter development environment
  2. Android phone that can connect to internet
  3. This documentation
  4. Ezetap app key or login credentials to Ezetap service
  5. Ezetap device to test card payments
4
likes
140
pub points
74%
popularity

Publisher

unverified uploader

Integrating the SDK will allow you to access Ezetap services in your application

Repository (GitHub)
View/report issues

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

flutter

More

Packages that depend on ezetap_sdk