stripe_terminal 1.0.0+2 copy "stripe_terminal: ^1.0.0+2" to clipboard
stripe_terminal: ^1.0.0+2 copied to clipboard

outdated

A flutter plugin to scan stripe readers and connect to the them and get the payment methods.

stripe_terminal #

pub package

A flutter plugin to scan stripe readers and connect to the them and get the payment methods.

Installation #

Android #

No Configuration needed, workes out of the box.

iOS #

You need to provide permission request strings to your Info.plist file. A sample content can be

	<key>NSLocationWhenInUseUsageDescription</key>
	<string>Location access is required in order to accept payments.</string>
	<key>UIBackgroundModes</key>
	<key>NSBluetoothPeripheralUsageDescription</key>
	<string>Bluetooth access is required in order to connect to supported bluetooth card readers.</string>
	<key>NSBluetoothAlwaysUsageDescription</key>
	<string>This app uses Bluetooth to connect to supported card readers.</string>

You also need to authorize backround modes authorization for bluetooth-central. Paste the following to your Info.plist file

	<array>
		<string>bluetooth-central</string>
	</array>

Usage #

  • First initilize the SDK
    stripeTerminal = StripeTerminal(
      fetchToken: () async {
        // Call your backend to get the connection token and return to this function
        // Example token can be.
        const token = "pst_test_XXXXXXXXXX...."; 

        return token;
      },
    );
  • Example backend code to get the connection token written on node.js:
    import Stripe from "stripe";
    import express from "express"

    const stripe = new Stripe("sk_test_XXXXXXXXXXXXXXXXXX", {
        apiVersion: "2020-08-27"
    })

    const app = express();

    app.get("/connectionToken", async (req, res) => {
        const token = await stripe.terminal.connectionTokens.create();
        res.send({
            success: true,
            data: token.secret
        });
    });
    app.listen(8000, () => {
        console.log("Server started")
    });
  • Discover the devices nearby and show it to the user
    stripeTerminal
        .discoverReaders(simulated: true)
        .listen((List<StripeReader> readers) {
            setState(() {
                this.readers = readers;
            });
        });
  • Connect to a reader
    bool connected = await stripeTerminal.connectToReader(readers[0].serialNumber);
    if(connected) {
        print("Connected to a device");
    }
  • Scan a card from the reader
    stripeTerminal
        .readPaymentMethod()
        .then((StripePaymentMethod paymentMethod) {
            print("A card was read, the last four digit is ${paymentMethod.card?.last4}");
        });

And you are done!!!!

Currently supported features: #

  • Initializing terminal SDK
  • Scanning the readers
  • Connecting to a device (Only bluetooth devices on android)
  • Checking connection status
  • Checking connected device
  • Read payment method from the device

Missing Features #

  • Create payment intent
  • Process payment
  • Capture payment

Future Plan #

Please feel free to send a PR for further feature as you need or just create an issue on the repo with the feature request.

I have no plans to maintain this package in the long future thus the package will be deprecated as soon as flutter_stripe adds support to their SDK as mentioned here

Support the creator #

Creating software for free takes time and effort thus please consider buying me a cup of coffee. This we definitely put a smile on my face and motivate me to contribute more.

"Buy Me A Coffee"

❤️ Sponsor

18
likes
0
points
56
downloads

Publisher

verified publisheraawaz.dev

Weekly Downloads

A flutter plugin to scan stripe readers and connect to the them and get the payment methods.

Repository (GitHub)
View/report issues

License

unknown (license)

Dependencies

flutter

More

Packages that depend on stripe_terminal