processPayment method

Future<LokotroPayOnResponse> processPayment({
  1. required MastercardPaymentRequest paymentRequest,
})

Process payment securely through backend

Implementation

Future<LokotroPayOnResponse> processPayment({
  required MastercardPaymentRequest paymentRequest,
}) async {
  if (!isInitialized) {
    return _createErrorResponse(
      'Service not initialized',
      'Please initialize the service first',
      paymentRequest.amount,
      paymentRequest.currency,
      paymentRequest.orderId,
    );
  }

  try {
    // Validate payment request
    if (!_validatePaymentRequest(paymentRequest)) {
      return _createErrorResponse(
        'Invalid Payment Request',
        'Payment request validation failed',
        paymentRequest.amount,
        paymentRequest.currency,
        paymentRequest.orderId,
      );
    }

    // Process through backend proxy
    return await _backendProxy!.processPayment(
      paymentRequest: paymentRequest,
      userId: _currentUserId!,
      sessionToken: _currentSessionToken,
    );

  } catch (e) {
    return _createErrorResponse(
      'Payment Processing Error',
      'Failed to process payment: $e',
      paymentRequest.amount,
      paymentRequest.currency,
      paymentRequest.orderId,
    );
  }
}