square_web_payments 0.0.6 copy "square_web_payments: ^0.0.6" to clipboard
square_web_payments: ^0.0.6 copied to clipboard

An open source Flutter package for integrating the Square Web Payments SDK. See https://rpelavin.github.io/square-web-payments for demonstration.

example/lib/main.dart

import 'dart:convert';

import 'package:flutter/material.dart';
import 'package:square_web_payments/square_web_payments.dart';
import 'package:widgetbook/widgetbook.dart';

final Payments payments =
    Square.payments('sandbox-sq0idb-negdp6Z5Q7RYeFbAv38m0A', 'L6XCYJM4ZPHRP');

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

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

  @override
  Widget build(BuildContext context) => Widgetbook.material(directories: [
        WidgetbookUseCase(
            name: "Card", builder: (context) => _buildPayment(payments.card())),
        WidgetbookUseCase(
            name: "GiftCard",
            builder: (context) => _buildPayment(payments.giftCard()))
      ]);

  Widget _buildPayment(Future<PaymentMethod> future) => Container(
      constraints: const BoxConstraints.expand(),
      decoration: const BoxDecoration(color: Colors.white),
      padding: const EdgeInsets.all(8),
      child: FutureBuilder(
          future: future,
          builder: (context, snapshot) => snapshot.data == null
              ? const Center(child: CircularProgressIndicator())
              : Column(children: [
                  PaymentMethodView(paymentMethod: snapshot.data!),
                  TextButton(
                      onPressed: () => _tokenize(context, snapshot.data!),
                      child: const Text('Tokenize'))
                ])));

  void _tokenize(BuildContext context, PaymentMethod paymentMethod) =>
      showDialog(
          context: context,
          builder: (BuildContext context) => FutureBuilder(
              future: paymentMethod.tokenize(),
              builder: (context, snapshot) => AlertDialog(
                  title: snapshot.connectionState == ConnectionState.done
                      ? Text(snapshot.hasData ? 'TokenResult' : 'Error')
                      : const Center(child: CircularProgressIndicator()),
                  content: snapshot.connectionState == ConnectionState.done
                      ? SelectableText(const JsonEncoder.withIndent('  ')
                          .convert(snapshot.data ?? snapshot.error))
                      : null)));
}
2
likes
0
points
1
downloads

Publisher

verified publisherpelavin.dev

Weekly Downloads

An open source Flutter package for integrating the Square Web Payments SDK. See https://rpelavin.github.io/square-web-payments for demonstration.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter, web

More

Packages that depend on square_web_payments