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:
@@ -448,10 +448,18 @@ class _PaymentDialogState extends State<PaymentDialog> {
|
||||
final url = result.waveLaunchUrl.isNotEmpty ? result.waveLaunchUrl : result.redirectUrl;
|
||||
if (url.isEmpty) throw Exception('URL Wave non reçue');
|
||||
|
||||
// Mode dev/mock : simuler le paiement sans ouvrir le navigateur
|
||||
// Mode dev/mock : simuler ET confirmer côté backend
|
||||
final isMock = url.contains('mock') || url.contains('localhost') || !AppConfig.isProd;
|
||||
if (isMock) {
|
||||
await Future.delayed(const Duration(milliseconds: 800));
|
||||
// Confirmer côté backend pour que la cotisation soit réellement payée
|
||||
final ref = result.clientReference.isNotEmpty ? result.clientReference : result.intentionPaiementId;
|
||||
if (ref.isNotEmpty) {
|
||||
try {
|
||||
final mockRepo = getIt<IContributionRepository>();
|
||||
await mockRepo.confirmerMockPaiement(ref);
|
||||
} catch (_) {}
|
||||
}
|
||||
await Future.delayed(const Duration(milliseconds: 400));
|
||||
if (!mounted) return;
|
||||
Navigator.pop(context);
|
||||
ScaffoldMessenger.of(context).showSnackBar(
|
||||
@@ -459,7 +467,7 @@ class _PaymentDialogState extends State<PaymentDialog> {
|
||||
content: Row(children: [
|
||||
Icon(Icons.science_rounded, color: AppColors.onPrimary, size: 16),
|
||||
const SizedBox(width: 8),
|
||||
const Expanded(child: Text('Paiement simulé avec succès (mode dev)')),
|
||||
const Expanded(child: Text('Paiement simulé et enregistré (mode dev)')),
|
||||
]),
|
||||
backgroundColor: AppColors.success,
|
||||
),
|
||||
|
||||
Reference in New Issue
Block a user