J-7, ZenInbox AI, build in public : Stripe est dangereux.
J'ai découvert un bug qui peut mettre à genou un business
J-7, ZenInbox AI, build in public : Stripe est dangereux.
Résumé de l'épisode précédent.
En ~7h30 de live où je construis ZenInbox, j'ai finalement réussi à faire l'enregistrement sécurisé de l'utilisateur sur Stripe et sur Clerk.
J'ai découvert un bug alarmant sur Stripe, qui peut vider le compte de tes utilisateurs. J'ai du mal à croire que Stripe ne soit pas au courant, car c'est juste du bon sens.
Je t'explique.
Déjà, tu peux avoir autant de clients que tu veux avec la même adresse mail. C'est-à-dire, différentes inscriptions, sur le même email. Étrange, non ?
Attends, ce n'est pas fini.
Tu peux aussi avoir la même adresse email qui achète plusieurs fois un même produit récurrent (abonnement). Il n'y a pas de limite.
C'est-à-dire, qu'il n'y a aucun mécanisme chez Stripe pour empêcher un même client d'acheter en boucle 1000 fois le même abonnement dans l'espace de 5 min.
Même pas une case à cocher du côté du créateur du produit.
Si du côté développement, tu as un bug qui produit une boucle infinie d'achat - ce qui, dans le dawa qu'est le réseau, est clairement possible - tu vas littéralement vider le compte de tes clients.
Devine quoi ? Ils doivent être au courant, car dans les motifs de remboursement il y a "doublon" dans les premières options.
Sauf que, si ça arrive, c'est toi en tant que vendeur qui es dans la mouise.
Déjà, tu vas avoir des frais de remboursement monstrueux, et probablement te faire bannir de Stripe.
Par leur faute, car il est impossible d'empêcher un même client d'acheter une infinité de fois un même produit via les paramètres Stripe.
Ce qui est juste du bon sens. J'ai découvert ça dans mes tests hier en déclenchant un bug (que j'ai évidemment corrigé).
Bref, si tu crées un SaaS, assure-toi côté serveur qu'il n'y a aucun monde où ça arrive.
Je commence le build in live de ZenInbox à 14h. Si tu veux venir me parler, je répondrai à toutes tes questions en live ici : https://buff.ly/3XM4MnL