deema_sdk 1.0.2 copy "deema_sdk: ^1.0.2" to clipboard
deema_sdk: ^1.0.2 copied to clipboard

Deema BNPL SDK

example/lib/main.dart

import 'package:deema_sdk/deema_sdk.dart';
import 'package:deema_sdk/models/purchase_request.dart';
import 'package:deema_sdk/purchase_result.dart';
import 'package:flutter/material.dart';

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

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

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: const Text('Deema Purchase Example')),
        body: HomeView(),
      ),
    );
  }
}

class HomeView extends StatelessWidget {
  HomeView({super.key});

  final amountTextController = TextEditingController();
  final keyTextController = TextEditingController();

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      mainAxisSize: MainAxisSize.max,
      children: [
        Padding(
          padding: const EdgeInsets.all(16.0),
          child: TextField(
            controller: keyTextController,
            decoration: const InputDecoration(
              label: Text("SDK Key")
            ),
          ),
        ),
        Padding(
          padding: const EdgeInsets.all(16.0),
          child: TextField(
            controller: amountTextController,
            decoration: const InputDecoration(
                label: Text("Amount")
            ),
          ),
        ),
        ElevatedButton(
          onPressed: () {
            DeemaSdk.lunch(
              context,
              keyTextController.text,
              Environment.sandbox,
              PurchaseRequest(
                merchantOrderId: "1726",
                amount: double.parse(amountTextController.text),
                currencyCode: "KWD",
              ),
              (result) {
                if (result is Success) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    const SnackBar(content: Text("Payment successful!")),
                  );
                } else if (result is Failure) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    SnackBar(content: Text("Payment failed: ${result.message}")),
                  );
                } else if (result is Canceled) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    const SnackBar(content: Text("Payment was canceled")),
                  );
                } else if (result is Unknown) {
                  ScaffoldMessenger.of(context).showSnackBar(
                    const SnackBar(content: Text("Unknown payment result")),
                  );
                }
              },
            );
          },
          child: const Text('Create Purchase'),
        ),
      ],
    );
  }
}