stone_payments 0.1.3
stone_payments: ^0.1.3 copied to clipboard
Este pacote é um plugin que fornece integração com as máquinas de pagamento da empresa Stone.
example/lib/main.dart
import 'dart:async';
import 'dart:convert';
import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:stone_payments/enums/type_owner_print_enum.dart';
import 'package:stone_payments/enums/type_transaction_enum.dart';
import 'package:stone_payments/stone_payments.dart';
void main() async {
WidgetsFlutterBinding.ensureInitialized();
final stonePaymentsPlugin = StonePayments();
await stonePaymentsPlugin.activateStone(
appName: 'My App',
stoneCode: '12345678',
);
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
final stonePaymentsPlugin = StonePayments();
String text = 'Running';
late StreamSubscription<String> listen;
@override
void initState() {
listen = stonePaymentsPlugin.onMessageListener((message) {
setState(() {
text = message;
});
});
super.initState();
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
appBar: AppBar(
title: const Text('Plugin example app'),
),
body: SizedBox(
width: double.infinity,
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Text(text),
ElevatedButton(
onPressed: () async {
if (listen.isPaused) {
listen.resume();
}
try {
await stonePaymentsPlugin.payment(
value: 5,
typeTransaction: TypeTransactionEnum.debit,
);
} catch (e) {
listen.pause();
setState(() {
text = "Falha no pagamento";
});
}
},
child: const Text('Comprar R\$5,00'),
),
Image.asset('assets/flutter5786.png'),
ElevatedButton(
onPressed: () async {
try {
var byteData =
await rootBundle.load('assets/flutter5786.png');
var imgBase64 = base64Encode(byteData.buffer.asUint8List());
await stonePaymentsPlugin.printFile(imgBase64);
} catch (e) {
setState(() {
text = "Falha na impressão";
});
}
},
child: const Text('Imprimir Logo'),
),
ElevatedButton(
onPressed: () async {
try {
await stonePaymentsPlugin
.printReceipt(TypeOwnerPrintEnum.merchant);
} catch (e) {
setState(() {
text = "Falha na impressão";
});
}
},
child: const Text('Imprimir Via Loja'),
),
ElevatedButton(
onPressed: () async {
try {
await stonePaymentsPlugin
.printReceipt(TypeOwnerPrintEnum.client);
} catch (e) {
setState(() {
text = "Falha na impressão";
});
}
},
child: const Text('Imprimir Via Cliente'),
),
],
),
),
),
);
}
}