pass_mtx 0.0.6 copy "pass_mtx: ^0.0.6" to clipboard
pass_mtx: ^0.0.6 copied to clipboard

outdated

Pass Micro Transaction Module Register your bank cards to PASS application and make your transaction the most convenient and fastest way.

example/lib/main.dart

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

import 'package:flutter/services.dart';
import 'package:pass_mtx/pass_mtx.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 _passInitResult = 'Unknown';
  String loggedUserId = "1";

  final _passMtxPlugin = PassMtx();

  TextEditingController cardNoController = TextEditingController();
  TextEditingController cardCvvController = TextEditingController();
  TextEditingController cardExpireDateController = TextEditingController();
  TextEditingController cardHolderNameController = TextEditingController();

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

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> initPlatformState() async {
    String passInitResult;

    String appId = "<APP_ID>";

    // DATABANK талаас үүсгэж өгсөн ClientID
    String clientId = "ClientID";

    // DATABANK талаас үүсгэж өгсөн PrivateKey
    String privatePem = "PrivateKey";

    // DATABANK талаас үүсгэж өгсөн PublicKey
    String publicPem = "PublicKey";

    // Platform messages may fail, so we use a try/catch PlatformException.
    // We also handle the message potentially returning null.
    try {
      passInitResult =
          await _passMtxPlugin.init(appId, clientId, privatePem, publicPem) ??
              'Unknown platform version';
    } on PlatformException {
      passInitResult = '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(() {
      _passInitResult = passInitResult;
    });
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> callSaveCard(String szPan, String szCvv, String szExpDate,
      String szCardHolderName) async {
    String pingResult;
    String saveCardResult;
    // Platform messages may fail, so we use a try/catch PlatformException.
    // We also handle the message potentially returning null.
    try {
      pingResult = await _passMtxPlugin.getPassPing() ?? 'Get Ping Failed';
    } on PlatformException {
      pingResult = 'Failed to Ping.';
    }
    debugPrint("Ping Result $pingResult");
    try {
      saveCardResult = await _passMtxPlugin.saveCard(
              loggedUserId, szPan, szCvv, szExpDate, szCardHolderName) ??
          'Save Card Failed';
    } on PlatformException {
      saveCardResult = 'Failed to Save Card.';
    }
    debugPrint("Save Card Result $saveCardResult");
  }

  // Platform messages are asynchronous, so we initialize in an async method.
  Future<void> callLoadCardToken() async {
    String getCardResult;
    // Platform messages may fail, so we use a try/catch PlatformException.
    // We also handle the message potentially returning null.
    try {
      getCardResult =
          await _passMtxPlugin.getCard(loggedUserId) ?? 'Get Card Failed';
    } on PlatformException {
      getCardResult = 'Failed to get platform version.';
    }
    debugPrint("GetCard result $getCardResult");
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Pass MTX example app'),
        ),
        body: SingleChildScrollView(
          physics: const AlwaysScrollableScrollPhysics(),
          child: Center(
              child: Column(
            children: [
              Text('Running on: $_passInitResult'),
              const Padding(padding: EdgeInsets.all(15)),
              TextField(
                controller: cardNoController,
                decoration: const InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Card Number',
                ),
              ),
              const Padding(padding: EdgeInsets.all(15)),
              TextField(
                controller: cardHolderNameController,
                decoration: const InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Card Holder Name',
                ),
              ),
              const Padding(padding: EdgeInsets.all(15)),
              TextField(
                controller: cardCvvController,
                decoration: const InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'CVV',
                ),
              ),
              const Padding(padding: EdgeInsets.all(15)),
              TextField(
                controller: cardExpireDateController,
                decoration: const InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Expire Date',
                ),
              ),
              TextButton(
                  child: const Text("Save"),
                  onPressed: () {
                    callSaveCard(
                      cardNoController.text,
                      cardCvvController.text,
                      cardExpireDateController.text,
                      cardHolderNameController.text,
                    );
                  }),
              TextButton(
                  child: const Text("Load"),
                  onPressed: () {
                    callLoadCardToken();
                  }),
            ],
          )),
        ),
      ),
    );
  }
}
3
likes
0
points
14
downloads

Publisher

verified publisherdatabank.mn

Weekly Downloads

Pass Micro Transaction Module Register your bank cards to PASS application and make your transaction the most convenient and fastest way.

Homepage

License

unknown (license)

Dependencies

flutter, plugin_platform_interface

More

Packages that depend on pass_mtx

Packages that implement pass_mtx