clisitefTransaction method
Future<TefTransactionResponseClisitef>
clisitefTransaction({
- required SitefSettingsClisitef sitefSettings,
- required SitefTransactionClisitef sitefTransaction,
Implementation
Future<TefTransactionResponseClisitef> clisitefTransaction({
required SitefSettingsClisitef sitefSettings,
required SitefTransactionClisitef sitefTransaction,
}) async {
if (!_licenceValidated) {
throw PlatformException(
code: 'LICENCE_NOT_INITIALIZED',
message: 'Chame ClisitefTech.I.initPayment antes de iniciar transações.',
);
}
final modality = int.tryParse(_modalityMap[sitefTransaction.sitefModality] ?? '0') ?? 0;
String restrictions = '';
if (modality == 3 || modality == 2) {
restrictions = sitefSettings.enabledTransactions;
}
Map<String, dynamic> paramsTransaction = {
'modalidade': modality,
'valor': sitefTransaction.valuePayment,
'cupomFiscal': sitefTransaction.couponNumber,
'dataFiscal': sitefTransaction.dateFiscal,
'horario': sitefTransaction.hourFiscal,
'operador': sitefTransaction.operatorPos,
'restricoes': restrictions,
'ipSitef': sitefSettings.serverIp,
'storeId': sitefSettings.storeCode,
'terminalId': sitefSettings.posNumber,
'parametrosAdc': sitefSettings.additionalParameters,
};
try {
String resultTransaction = await channel.invokeMethod('startTransaction', paramsTransaction);
final resultJson = json.decode(resultTransaction);
final model = TefTransactionModel.fromJson(resultJson);
if (model.resultCode != 0 || model.tefNSUAuthorizing == '') {
if (model.resultCode == -1) {
final configure = await configureClisitef(sitefSettings: sitefSettings);
if (configure != 0) {
return await clisitefTransaction(sitefSettings: sitefSettings, sitefTransaction: sitefTransaction);
}
}
}
return _fetchTefTransactionResponse(model: model);
} catch (e) {
rethrow;
}
}