printerWidget method
Future<void>
printerWidget(
- GlobalKey<
State< key, {StatefulWidget> > - required dynamic onMessage(),
- required dynamic onPop(),
- required StoneTechCredentialsModel stoneCredentials,
Implementation
Future<void> printerWidget(
GlobalKey key, {
required Function(String) onMessage,
required Function(bool) onPop,
required StoneTechCredentialsModel stoneCredentials,
}) async {
try {
credentials = stoneCredentials;
if (!StoneTech.isPinpadActivated) {
onMessage('Ativando terminal');
await initialize(
stoneCredentials: credentials,
onMessage: onMessage,
onPop: onPop,
onSuccess: () {
printerWidget(
key,
onMessage: onMessage,
onPop: onPop,
stoneCredentials: stoneCredentials,
);
},
);
onMessage('Ativando terminal\nAguarde...');
return;
}
onMessage('Gerando comprovante...');
await Future.delayed(const Duration(seconds: 1));
final printerHelper = StonePrinterLayoutHelper();
final result = await printerHelper.generateReceipt(key);
if (result == null) {
onMessage('Erro ao gerar recibo');
await Future.delayed(const Duration(seconds: 3));
onPop(false);
return;
}
onMessage('Aguarde enquanto o comprovante é gerado...');
onMessage('Enviando para a impressora...');
stone.payment.printFromBase64(result.base64String);
await Future.delayed(const Duration(seconds: 3));
onPop(true);
} catch (e) {
onMessage('*Erro ao gerar recibo: $e');
onPop(false);
}
}