initiate3DSAuthentication method

Future<Map<String, dynamic>> initiate3DSAuthentication({
  1. required String orderId,
  2. required double amount,
  3. required String currency,
  4. required String userId,
  5. String? sessionToken,
})

Initiate 3DS authentication through backend

Implementation

Future<Map<String, dynamic>> initiate3DSAuthentication({
  required String orderId,
  required double amount,
  required String currency,
  required String userId,
  String? sessionToken,
}) async {
  try {
    final requestBody = {
      'order_id': orderId,
      'amount': amount,
      'currency': currency,
      'user_id': userId,
      'session_token': sessionToken,
      'client_info': await _getClientInfo(),
    };

    final response = await _dio.post(
      '/api/v1/payments/mastercard/3ds/initiate',
      data: requestBody,
    );

    return response.data as Map<String, dynamic>;

  } on DioException catch (e) {
    throw Exception('3DS initiation failed: ${e.message}');
  }
}