Permets aux utilisateurs de soutenir d’autres membres via Stripe, avec historique des dons.
Dans une application de chat temps réel, offrir un système de dons entre utilisateurs renforce la solidarité au sein de la communauté. Ce module vous guide pas à pas pour intégrer Stripe dans un back-end NestJS et un front-end Remix, tout en conservant un historique des dons via Prisma.
⚙️ Vous apprendrez à :
- Créer et gérer des comptes connectés Stripe (Express)
- Générer dynamiquement des produits et des prix
- Initialiser une session de paiement sécurisée
- Traiter les webhooks pour mettre à jour le statut des dons
Comptes connectés (Express)
Chaque utilisateur reçoit un stripeAccountId
et un lien d’onboarding pour compléter son profil financier.
Produits et prix dynamiques
À la première interaction, on crée un produit Soutenez <Prénom>
et on permet un montant de don libre.
Session de paiement Checkout
Nous utilisons stripe.checkout.sessions.create
avec transfer_data.destination
pour acheminer directement les fonds vers le bénéficiaire, sans appliquer de frais
(ou en modifiant application_fee_amount
selon votre modèle).
Webhooks Stripe
Un endpoint sécurisé capte payment_intent.succeeded
, met à jour le montant du don
et valide la transaction dans Prisma.
1async createDonation({2receivingUserId,3givingUserId,4}: {5receivingUserId: string6givingUserId: string7}): Promise<{8error: boolean9message: string10sessionUrl: string | null11}> {12if (receivingUserId === givingUserId) {13throw new Error("Vous ne pouvez pas vous faire de dons à vous-même")14}15// Création ou récupération du produit prix, puis session Checkout16const session = await this.stripe.checkout.sessions.create({17mode: "payment",18line_items: [{ price: price.id, quantity: 1 }],19payment_intent_data: {20metadata: { donationId: createdDonation.id },21transfer_data: { destination: stripeAccount.id },22},23success_url: "http://localhost:3000",24cancel_url: "http://localhost:3000",25})2627return {28sessionUrl: session.url,29error: false,30message: "Session créée avec succès",31}32}
Cette formation utilise la stack suivante :
Pour approfondir :
Vous êtes prêts à plonger dans l’implémentation de ce flux de dons sécurisé et à offrir une expérience engageante à vos utilisateurs !