getTransactionDetails method
Step 2: Get transaction details GET /payments/transaction/{transaction_id}
Implementation
Future<LokotroTransactionDetails> getTransactionDetails(String transactionId) async {
try {
LokotroPayLog.d('payment.tx', {'transaction_id': transactionId});
final response = await _httpClient.get<Map<String, dynamic>>(
'/payments/transaction/$transactionId',
parser: (data) => data as Map<String, dynamic>,
);
if (response.isSuccess && response.data != null) {
final transactionDetails = LokotroTransactionDetails.fromJson(response.data!);
LokotroPayLog.d('payment.tx.ok', {
'transaction_id': transactionDetails.transactionId,
'status': transactionDetails.status,
'channel': transactionDetails.channel,
});
return transactionDetails;
} else {
throw LokotroPaymentException(
message: response.message,
code: 'TRANSACTION_FETCH_FAILED',
);
}
} catch (e) {
LokotroPayLog.m('payment.tx.err', 'get transaction failed (type=${e.runtimeType})');
rethrow;
}
}