transact_pay_sdk 0.0.9 copy "transact_pay_sdk: ^0.0.9" to clipboard
transact_pay_sdk: ^0.0.9 copied to clipboard

TransactPay Flutter Package provide innovative and flexible European BIN sponsorship and modular payment, debit, and prepaid services.

example/lib/main.dart

import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:example/app_textfield.dart';
import 'package:transact_pay_sdk/transact_pay_sdk.dart';

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

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      debugShowCheckedModeBanner: false,
      title: "Test TransactPay",
      home: const HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  const HomeScreen({super.key});

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  late TextEditingController _apiKeyController;
  late TextEditingController _encryptionKeyController;
  late TextEditingController _secretKeyController;
  late TextEditingController _payloadController;

  // Default values
  final String defaultApiKey =
      "PGW-PUBLICKEY-TEST-5D9411AB210740019FF1374C896D86D0";
  final String defaultEncryptionKey =
      "NDA5NiE8UlNBS2V5VmFsdWU+PE1vZHVsdXM+cW5rdlhOWHRYdEF0Mi9RcDB4SzBSUXpXYTVKRWc5T0xTNFBqYzZKcmN1eDg4bmJsd2Fyd0h4dnlrUy9STk92eFltU2ZPTlEzbW9vM1hhaWpXd2IwbnVVOTJ4anBmSzByb0FYaFo0emdHVUdlS081emY4enlncExTYzFqS05MMFNXZHZWYndMeTN3WHJiRTBrSjZJRWVvSThLRSs0anRndzY1R084Z3hJeGpibjhNemI5YVNreFdaSnVMRFRLNzJHcGcxYkwrNDBLYnVNc2tVWlJVTGxhNC84Y1dYSlpId2JINjRWNkNHQlVMMGVQUmQ4dnB3aEhySzhZSlZaRGxuYTdNbmxQVjdoeGg1Q0dabkVsNy91WEJjaGYvTExLOFNyckdnRWN1anFKWEZxMm9nUlEwNzBxN2RmOXBNZ0Q5YXpTK3dya2dBck9wNnVFcXBFQ1NnbXlvb1VMZFV2MTBhQk4xRUN5YTY2UnhuV3dEck5QZktSWjU4ZmFlNnJkelpMaExlajNId2VJRjZYcHpwL280VTlmVDVwOFNWTStHK1FZalFFV0RieldhYzMyMUIxRVhWc2xkMXFFTDJzZEk0UEFWNy9DWUcwS2hvR256NVdyZnNBQ1lRRUFkQm16MXM1NktYZnczV3dYVDJoUE1xWWtTZ2c4ejFiR1AxWTZJeDU3RHViUjdVcDlwc2taV0ptUzdNdkM1NnRHN1F6OUdiNzBjVTRiNXYvYkdBZnNMNUlRanBrc2QyRENsU2U0Vm5oNEcyWE0xeTEzS0gyZWVvNnViMUczdVBUMGtzZ2RxSXRtdjFKcmN3SThWaXJOWG9oeW1xL2xpbWg1VUhDTWhzMUhlUTQwMXIvNWt0S200bDJISFMvdXhNcmZlUmVEVTRWMXVBZTNQRU1jUDg9PC9Nb2R1bHVzPjxFeHBvbmVudD5BUUFCPC9FeHBvbmVudD48L1JTQUtleVZhbHVlPg==";
  final String defaultSecretKey =
      "PGW-SECRETKEY-TEST-AA5F84F420514F7DB6CD7938B398727C";
  final String defaultPayload = jsonEncode({
    "customer": {
      "firstname": "Chidiebere",
      "lastname": "Saleman",
      "mobile": "+2348064255905",
      "country": "NG",
      "email": "example@gmail.com"
    },
    "order": {
      "amount": 245000.00,
      "reference": "A2i1qwk",
      "description": "Desc",
      "currency": "NGN"
    },
    "payment": {"RedirectUrl": "https://urlredirection.com/"}
  });

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

  void _resetFields() {
    setState(() {
      _apiKeyController = TextEditingController(text: defaultApiKey);
      _encryptionKeyController =
          TextEditingController(text: defaultEncryptionKey);
      _secretKeyController = TextEditingController(text: defaultSecretKey);
      _payloadController = TextEditingController(text: defaultPayload);
    });
  }

  void _navigateToPaymentScreen() {
    try {
      final Map<String, dynamic> payload = jsonDecode(_payloadController.text);

      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => PaymentInitiationScreen(
            apiKey: _apiKeyController.text.trim(),
            encryptionKey: _encryptionKeyController.text.trim(),
            secretKey: _secretKeyController.text.trim(),
            payload: payload,
            returnScreen: const HomeScreen(),
          ),
        ),
      );
    } catch (e) {
      ScaffoldMessenger.of(context).showSnackBar(
        SnackBar(
          content: Text("Invalid JSON format: ${e.toString()}"),
          backgroundColor: Colors.red,
        ),
      );
    }
  }

  @override
  Widget build(BuildContext context) {
    return GestureDetector(
      onTap: () {
        FocusScope.of(context).unfocus();
      },
      child: Scaffold(
        appBar: AppBar(
          title: const Text("Test Payment SDK"),
          centerTitle: true,
          leading: IconButton(
            icon: const Icon(Icons.refresh, color: Colors.white),
            onPressed: _resetFields, // Reset fields when clicked
          ),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: SingleChildScrollView(
            child: Column(
              crossAxisAlignment: CrossAxisAlignment.start,
              children: [
                AppInputField(
                  labelText: "API Key",
                  hintText: "Enter API Key",
                  controller: _apiKeyController,
                  isRequired: true,
                ),
                AppInputField(
                  labelText: "Encryption Key",
                  hintText: "Enter Encryption Key",
                  controller: _encryptionKeyController,
                  isRequired: true,
                ),
                AppInputField(
                  labelText: "Secret Key",
                  hintText: "Enter Secret Key",
                  controller: _secretKeyController,
                  isRequired: true,
                ),
                AppInputField(
                  labelText: "Payload Data (Enter JSON)",
                  hintText: "Enter JSON payload",
                  controller: _payloadController,
                  isTextArea: true,
                  isRequired: true,
                ),
                const SizedBox(height: 20),
                Center(
                  child: ElevatedButton(
                    onPressed: _navigateToPaymentScreen,
                    style: ElevatedButton.styleFrom(
                      padding: const EdgeInsets.symmetric(
                          horizontal: 24, vertical: 12),
                      textStyle: const TextStyle(fontSize: 16),
                    ),
                    child: const Text("Open Payment Screen"),
                  ),
                ),
              ],
            ),
          ),
        ),
      ),
    );
  }
}
1
likes
0
points
68
downloads

Publisher

unverified uploader

Weekly Downloads

TransactPay Flutter Package provide innovative and flexible European BIN sponsorship and modular payment, debit, and prepaid services.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, get, http, intl, transact_pay, webview_flutter

More

Packages that depend on transact_pay_sdk