initialize method

Future<bool> initialize(
  1. PaymentConfig config, {
  2. dynamic onPaymentCompleted(
    1. PaymentStatusDetails
    )?,
  3. Duration timeout = const Duration(seconds: 30),
})

Implementation

Future<bool> initialize(
  PaymentConfig config, {
  Function(PaymentStatusDetails)? onPaymentCompleted,
  Duration timeout = const Duration(seconds: 30),
}) async {
  if (_sessionCreated && _config.transactionId == config.transactionId) {
    return true;
  }

  _isInitializing = true;
  _initializationError = null;
  _sessionCreated = false;

  try {
    _config = config;
    _apiService = ApiService(_config);
    _lastUsedBank = await _storageService.getLastUsedBank();
    _paymentCompletionCallback = onPaymentCompleted;

    // Create payment session
    final response = await _apiService.createAuthenticationSession();
    _personalBanks = response.data.bankList.personalBanks;
    _businessBanks = response.data.bankList.businessBanks;

    _sessionCreated = true;
    return true;
  } catch (e) {
    _initializationError = e.toString();
    debugPrint('Initialization error: $e');
    return false;
  } finally {
    _isInitializing = false;
  }
}