akurateco_flutter 1.0.0+1 copy "akurateco_flutter: ^1.0.0+1" to clipboard
akurateco_flutter: ^1.0.0+1 copied to clipboard

A simple Akurateco API wrapper

example/lib/main.dart

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

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Akurateco Flutter Example',
      home: Scaffold(
        appBar: AppBar(title: const Text('Akurateco Example')),
        body: const Center(child: AkuratecoDemo()),
      ),
    );
  }
}

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

  @override
  State<AkuratecoDemo> createState() => _AkuratecoDemoState();
}

class _AkuratecoDemoState extends State<AkuratecoDemo> {
  late final CheckoutController _controller;

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

    Akurateco().initialize(
      backendUrl: 'https://example.com',
      merchantKey: 'merchant key',
      password: 'password',
    );

    var request = createAkuratecoRequest();
    _controller = CheckoutController(
      paymentRequest: request,
      onSuccessRedirect: (url) {
        Navigator.pop(context);
        ScaffoldMessenger.of(
          context,
        ).showSnackBar(const SnackBar(content: Text("Payment Success")));
      },
    );
  }

  AkuratecoRequest createAkuratecoRequest() {
    var akuratecoOrder = const AkuratecoOrder(
      number: "order-1234",
      amount: "100.00",
      currency: "USD",
      description: "Example purchase",
    );

    return AkuratecoRequest(
      operation: AkuratecoOperation.purchase,
      successUrl: "https://example.com/success",
      order: akuratecoOrder,
    );
  }

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        ElevatedButton(
          onPressed: () {
            showDialog(
              context: context,
              builder: (_) => Dialog(
                child: SizedBox(
                  width: 400,
                  height: 600,
                  child: AkuratecoCheckout(controller: _controller),
                ),
              ),
            );
          },
          child: const Text('Start Payment'),
        ),
      ],
    );
  }
}
0
likes
140
points
0
downloads

Publisher

verified publisherakurateco.com

Weekly Downloads

A simple Akurateco API wrapper

Homepage

Documentation

API reference

License

MIT (license)

Dependencies

crypto, flutter, http, webview_flutter

More

Packages that depend on akurateco_flutter