plumter_flutter_sdk_v1 0.1.0-beta.3 copy "plumter_flutter_sdk_v1: ^0.1.0-beta.3" to clipboard
plumter_flutter_sdk_v1: ^0.1.0-beta.3 copied to clipboard

Plumter Flutter SDK — a drop-in package for generating dynamic payment beneficiary fields for cross-border payment tickets, with server-driven theming.

example/lib/main.dart

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

void main() => runApp(const ExampleApp());

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Plumter Flutter SDK Example',
      theme: ThemeData(useMaterial3: true),
      home: const HomeScreen(),
    );
  }
}

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

  // Replace this with a Plumter-issued JWT. The SDK decodes the token to
  // discover the API base URL — with a placeholder value, launch() reports a
  // PFSdkInvalidServerUrlError via onFailure.
  static const String _authToken = 'PASTE_YOUR_PLUMTER_AUTH_TOKEN_HERE';

  void _launchSdk(BuildContext context) {
    final messenger = ScaffoldMessenger.of(context);

    PFSdk.launch(
      context: context,
      authToken: _authToken,
      themeMode: ThemeMode.light,
      onSuccess: (PFSdkResult result) {
        messenger.showSnackBar(
          SnackBar(content: Text('Success — Beneficiary ${result.beneficiary}')),
        );
      },
      onFailure: (PFSdkError error) {
        messenger.showSnackBar(
          SnackBar(content: Text('Failed — ${error.code}: ${error.message}')),
        );
      },
      onCancel: () {
        messenger.showSnackBar(
          const SnackBar(content: Text('Cancelled')),
        );
      },
    );
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Plumter Flutter SDK')),
      body: Center(
        child: FilledButton(
          onPressed: () => _launchSdk(context),
          child: const Text('Launch SDK'),
        ),
      ),
    );
  }
}