payForItWave function

Future<Map<String, dynamic>?> payForItWave(
  1. Map<String, dynamic> data
)

Effectue un paiement Wave via l'API Feexpay Retourne une Map contenant les infos utiles (payment_url, reference, etc.)

Implementation

Future<Map<String, dynamic>?> payForItWave(Map<String, dynamic> data) async {
  const String url =
      'https://api.feexpay.me/api/transactions/requesttopay/integration';

  try {
    final response = await http.post(
      Uri.parse(url),
      headers: {'Content-Type': 'application/json'},
      body: jsonEncode(data),
    );

    final decoded = jsonDecode(response.body);

    if (decoded is Map<String, dynamic>) {
      final message = decoded['message']?.toString();

      // Traduction des messages connus
      if (message == 'Network Unavailable' ||
          message == 'NETWORK_UNAVAILABLE') {
        decoded['message'] =
            'Réseau indisponible. Veuillez réessayer plus tard.';
      } else if (message == 'Invalid phone number') {
        decoded['message'] = 'Numéro de téléphone invalide.';
      } else if (message == 'Insufficient funds') {
        decoded['message'] = 'Fonds insuffisants sur votre compte.';
      } else if (message == 'Shop not found') {
        decoded['message'] = 'Boutique introuvable.';
      }

      return decoded;
    } else {
      return {
        'message': 'Réponse inattendue du serveur.',
      };
    }
  } catch (e) {
    return {
      'message':
          'Impossible de se connecter au serveur. Vérifiez votre connexion internet.',
    };
  }
}