getTransactionDetails method

Future<LokotroTransactionDetails> getTransactionDetails(
  1. String transactionId
)

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;
  }
}