Système de Paiement Spring-Fullstack-Speed

Version actuelle: 1.0.1

Le générateur de paiement de Spring-Fullstack-Speed vous permet d'intégrer facilement des solutions de paiement avancées à votre application Spring Boot. Que vous ayez besoin de traiter des paiements ponctuels, de gérer des abonnements ou de générer des rapports financiers détaillés, notre système de paiement vous couvre.

Multi-fournisseurs

Support complet pour Stripe et PayPal avec une interface unifiée.

Abonnements

Gestion des plans, des cycles de facturation et des renouvellements.

Facturation

Création et gestion automatisées des factures et des reçus.

Remboursements

Traitement des remboursements complets et partiels avec suivi.

Rapports financiers

Génération de rapports détaillés sur les revenus et transactions.

Sécurité

Configuration sécurisée avec authentification et validation.

Installation et configuration

Pour intégrer le système de paiement à votre application existante, utilisez la commande suivante :

sfs payment --provider=stripe,paypal

Pour une configuration complète avec toutes les fonctionnalités :

sfs payment --provider=stripe --subscription=true --invoicing=true --taxes=true --refunds=true --reporting=true

Le générateur vous guidera à travers le processus de configuration et ajoutera les propriétés nécessaires à votre fichier application.properties ou application.yml :

# Configuration Stripe
payment.stripe.api-key=${STRIPE_API_KEY}
payment.stripe.webhook-secret=${STRIPE_WEBHOOK_SECRET}
payment.stripe.public-key=${STRIPE_PUBLIC_KEY}

# Configuration PayPal
payment.paypal.client-id=${PAYPAL_CLIENT_ID}
payment.paypal.client-secret=${PAYPAL_CLIENT_SECRET}
payment.paypal.mode=sandbox
                    

Pensez à définir ces variables d'environnement avec vos clés API réelles, obtenues auprès des fournisseurs de paiement.

Système de remboursements

Notre système de remboursements offre une solution complète pour gérer tous les aspects des remboursements clients, que ce soit des remboursements complets ou partiels.

Remboursements complets

Pour effectuer un remboursement complet d'un paiement, utilisez l'API REST ou le service directement :

Exemple avec l'API REST :

POST /api/refunds/payment/{paymentId}
                        

Exemple avec le service :

@Autowired
private RefundService refundService;

public void processRefund(Long paymentId) {
    RefundDTO refund = refundService.refundPayment(paymentId);
    // Traiter le résultat du remboursement
}
                        

Remboursements partiels

Pour effectuer un remboursement partiel, vous pouvez spécifier le montant à rembourser :

Exemple avec l'API REST :

POST /api/refunds/payment/{paymentId}/partial
Content-Type: application/json

{
  "amount": 19.99,
  "reason": "Remboursement partiel suite à une réclamation client"
}
                        

Exemple avec le service :

BigDecimal amount = new BigDecimal("19.99");
String reason = "Remboursement partiel suite à une réclamation client";
RefundDTO refund = refundService.partialRefund(paymentId, amount, reason);
                        

Annulation de remboursements

Dans certains cas, il est possible d'annuler un remboursement récent (selon les règles du fournisseur de paiement) :

POST /api/refunds/{refundId}/cancel
                        

Cette fonctionnalité dépend du fournisseur de paiement et peut ne pas être disponible pour tous les types de transactions ou après un certain délai.

Rapports financiers

Le module de rapports financiers permet de générer des analyses détaillées de vos transactions, revenus et activités clients.

Rapports de revenus

Analyse des revenus sur une période donnée avec possibilité de groupement (jour, semaine, mois, année).

Rapports de transactions

Détail des transactions avec filtrage par statut, méthode de paiement, etc.

Rapports clients

Analyse du comportement client, nouveaux clients, taux de rétention, etc.

Génération de rapports via API

Les rapports sont accessibles via des endpoints REST spécifiques :

# Rapport de revenus
GET /api/reports/revenue?startDate=2023-01-01&endDate=2023-12-31&groupBy=month

# Rapport de transactions
GET /api/reports/transactions?startDate=2023-01-01&endDate=2023-12-31&status=COMPLETED

# Rapport clients
GET /api/reports/customers?startDate=2023-01-01&endDate=2023-12-31
                    

Export de rapports

Vous pouvez facilement exporter les rapports au format PDF ou Excel :

# Export au format PDF
GET /api/reports/{reportId}/export?format=pdf

# Export au format Excel
GET /api/reports/{reportId}/export?format=excel
                        

Les fichiers exportés incluent des graphiques, tableaux et analyses pour une meilleure visualisation des données financières.

FAQ - Questions fréquemment posées

Quels fournisseurs de paiement sont supportés ?

Actuellement, nous supportons officiellement Stripe et PayPal. D'autres fournisseurs comme Braintree, Adyen et Mollie seront ajoutés dans les prochaines versions.

Comment tester l'intégration sans effectuer de vrais paiements ?

Chaque fournisseur offre un environnement sandbox ou test. Pour Stripe, utilisez les clés API de test qui commencent par sk_test_. Pour PayPal, définissez payment.paypal.mode=sandbox.

Comment gérer les devises multiples ?

Le système supporte plusieurs devises. Spécifiez la devise dans chaque requête de paiement :

{
  "amount": 19.99,
  "currency": "EUR",  // ou "USD", "GBP", etc.
  "description": "Achat de produit"
}
                            

Les webhooks sont-ils sécurisés ?

Oui, le système vérifie la signature de chaque webhook pour s'assurer qu'il provient bien du fournisseur de paiement. Pour Stripe, définissez la variable STRIPE_WEBHOOK_SECRET avec votre clé de signature.

Comment puis-je personnaliser les modèles de rapports ?

Vous pouvez personnaliser les templates de rapports en créant vos propres implémentations des classes PdfReportGenerator et ExcelReportGenerator.