payWithEasebuzz method

  1. @override
Future<Map<String, dynamic>?> payWithEasebuzz(
  1. String accessKey,
  2. String payMode
)
override

Implementation

@override
Future<Map<String, dynamic>?> payWithEasebuzz(
  String accessKey,
  String payMode,
) async {
  // Existing implementation
  final completer = Completer<Map<String, dynamic>?>();
  void onResponse(dynamic response) {
    try {
      final responseMap = jsObjectToMap(response);
      if (!completer.isCompleted) {
        completer.complete(responseMap);
      }
    } catch (e) {
      if (!completer.isCompleted) {
        completer.completeError('Error parsing response: $e');
      }
    }
  }

  try {
    final easebuzzCheckout = callConstructor(
      getProperty(web.window, 'EasebuzzCheckout'),
      [accessKey, payMode],
    );

    final options = jsify({
      'access_key': accessKey,
      'onResponse': allowInterop(onResponse),
      'theme': '#123456',
    });

    callMethod(easebuzzCheckout, 'initiatePayment', [options]);
  } catch (e) {
    if (!completer.isCompleted) {
      completer.completeError('Error initiating payment: $e');
    }
  }

  return completer.future;
}