open_payment 4.0.3 copy "open_payment: ^4.0.3" to clipboard
open_payment: ^4.0.3 copied to clipboard

Flutter plugin which lets you seamlessly integrate OPEN Payment Gateway with your Flutter app and start collecting payments from your customers.

example/lib/main.dart

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

import 'package:open_payment/open_payment.dart';

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

class MyApp extends StatefulWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final TextEditingController _accessTokenController = TextEditingController();
  final TextEditingController _paymentTokenController = TextEditingController();
  PaymentEnvironment environment = PaymentEnvironment.preprod;
  String? result;

  @override
  void dispose() {
    _accessTokenController.dispose();
    _paymentTokenController.dispose();
    super.dispose();
  }

  Future<void> onPaymentClick() async {
    final accessToken = _accessTokenController.text.trim();
    final paymentToken = _paymentTokenController.text.trim();

    OpenPaymentPayload openPaymentPayload = OpenPaymentPayload(
      accessToken: accessToken,
      paymentToken: paymentToken,
      environment: environment,
      mainColor: "#83025c",
      errorColor: "#ff0000",
    );

    await OpenPayment.initiatePayment(
      openPaymentPayload: openPaymentPayload,
      onTransactionComplete: (TransactionDetails transactionDetails) {
        setState(() {
          result = transactionDetails.status;
        });
      },
      onError: (String error) {
        setState(() {
          result = error;
        });
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: const Text('Open Payment Demo'),
        ),
        body: Padding(
          padding: const EdgeInsets.all(16.0),
          child: Column(
            crossAxisAlignment: CrossAxisAlignment.stretch,
            children: [
              // Environment selector dropdown
              DropdownButtonFormField<PaymentEnvironment>(
                value: environment,
                decoration: const InputDecoration(
                  labelText: 'Environment',
                  border: OutlineInputBorder(),
                ),
                items: const [
                  DropdownMenuItem(
                    value: PaymentEnvironment.preprod,
                    child: Text('Preprod'),
                  ),
                  DropdownMenuItem(
                    value: PaymentEnvironment.live,
                    child: Text('Live'),
                  ),
                ],
                onChanged: (env) {
                  if (env != null) {
                    setState(() {
                      environment = env;
                    });
                  }
                },
              ),
              const SizedBox(height: 16),
              TextField(
                controller: _accessTokenController,
                decoration: const InputDecoration(
                  labelText: 'Access Token',
                  border: OutlineInputBorder(),
                ),
              ),
              const SizedBox(height: 16),
              TextField(
                controller: _paymentTokenController,
                decoration: const InputDecoration(
                  labelText: 'Payment Token',
                  border: OutlineInputBorder(),
                ),
              ),
              const SizedBox(height: 24),
              ElevatedButton(
                onPressed: onPaymentClick,
                child: const Text('Initiate Payment'),
              ),
              const SizedBox(height: 24),
              if (result != null)
                Expanded(
                  child: Center(
                    child: Padding(
                      padding: const EdgeInsets.all(8),
                      child: Text(
                        'Result: $result',
                        style: const TextStyle(fontSize: 14),
                      ),
                    ),
                  ),
                ),
            ],
          ),
        ),
      ),
    );
  }
}
8
likes
0
points
184
downloads

Publisher

unverified uploader

Weekly Downloads

Flutter plugin which lets you seamlessly integrate OPEN Payment Gateway with your Flutter app and start collecting payments from your customers.

License

unknown (license)

Dependencies

analyzer, flutter, json_annotation

More

Packages that depend on open_payment

Packages that implement open_payment