fix(wave-mock): appeler mock-complete backend pour créditer réellement les comptes

Le mock simulait seulement l'UI mais n'appelait pas le backend pour
confirmer le paiement → le solde restait à 0 après dépôt simulé.

Fix : en mode mock, après la simulation UI, appeler
GET /api/wave-redirect/mock-complete?ref={id} qui :
- Marque l'intention de paiement comme complétée
- Crédite le compte épargne (pour les dépôts)
- Enregistre le paiement de cotisation (pour les cotisations)

Changements :
- depot_epargne_dialog : appelle confirmerMockPaiement(versementId)
- payment_dialog : appelle confirmerMockPaiement(clientReference)
- transaction_epargne_repository : nouvelle méthode confirmerMockPaiement()
  + versementId ajouté à DepotWaveResult
- contribution_repository : nouvelle méthode confirmerMockPaiement()
  + intentionPaiementId ajouté à WavePaiementInitResult
This commit is contained in:
dahoud
2026-04-16 19:39:27 +00:00
parent 1d20687a43
commit 22fec56fcf
4 changed files with 39 additions and 7 deletions

View File

@@ -161,19 +161,30 @@ class TransactionEpargneRepository {
waveLaunchUrl: data['waveLaunchUrl'] as String? ?? data['redirectUrl'] as String? ?? '',
redirectUrl: data['redirectUrl'] as String? ?? data['waveLaunchUrl'] as String? ?? '',
message: data['message'] as String? ?? 'Ouvrez Wave pour confirmer le dépôt.',
versementId: data['versementId'] as String? ?? data['clientReference'] as String? ?? '',
);
}
}
/// Confirme un paiement mock (mode dev) côté backend.
/// Appelle GET /api/wave-redirect/mock-complete?ref={id}
/// pour que le backend crédite réellement le compte.
Future<void> confirmerMockPaiement(String versementId) async {
await _apiClient.get('/api/wave-redirect/mock-complete', queryParameters: {'ref': versementId});
}
}
/// Résultat de l'initiation d'un dépôt Wave (épargne).
class DepotWaveResult {
final String waveLaunchUrl;
final String redirectUrl;
final String message;
final String versementId;
const DepotWaveResult({
required this.waveLaunchUrl,
required this.redirectUrl,
required this.message,
this.versementId = '',
});
}