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.