trackPaymentRequest method

Future<void> trackPaymentRequest()

Implementation

Future<void> trackPaymentRequest() async {
  setBusy(true);
  try {
    final response = await _paymentService.trackPaymentsStatus(
      TrackPaymentRequest(
        transactionReference: transactionInfoResponse?.reference ?? "",
        walletName: transactionInfoResponse?.paymentMethod ?? "",
      ),
    );
    setBusy(false);
    if (response.statusCode == 200) {
      final payment = response.data;
      if (payment == null) {
        navigateToPaymentFailed(
          'Payment not found with reference $paymentReference.',
        );
        return;
      }

      final paymentStatus = payment.paymentMethod ?? "";
      if (payment.status == "Paid") {
        navigateToPaymentSuccess();
      } else {
        navigateToPaymentFailed(paymentStatus);
      }
    }
  } catch (e) {
    // Handle errors (e.g., log them or show a message)
  } finally {
    setBusy(false);
    rebuildUi();
  }
}