- Expédié
- 26 août 2026 à 02:22 UTC
- Auteur
- Kamo
- Commite
- bfc8092
Une temporisation de socket sur une écriture de Stripe qui a effectivement réussi est indistinguable, de notre côté, d'un qui ne l'a pas fait; sans un idempotency key le réaroût crée un deuxième abonnement, checkout la session, ou le prix et le locataire sont facturés deux fois. StripeIdempotency.forKey tire une sécurité stable, préfixée, 255 carats Clé de rayures idempotency d'une clé logique fournie par l'appelant l'opération et son sujet (jamais une valeur aléatoire, qui ne donnerait pas la protection en cas d'essai). Couvre les 20 sites d'appels d'écriture authentiques Stripe dans les cinq services qui parler directement à Stripe, pas seulement les 14 nommés dans cette tâche bref: un audit indépendant de chaque création/mise à jour/annuler/tach/ L'appel d' détachement/del a été multiplié par cinq autres dans AccountSubscriptionService (annuler, réactiver, réactiver, la méthode de paiement par défaut modifier, et sync. AccountPaymentMethodService (joindre), dont le mémoire le regex ancré de classe peut voir parce que son récepteur est un local variable plutôt que le nom de la classe Stripe. EsignMeterService de sous-mission séjours intacts: MeterEvent porte déjà le propre niveau de l'événement de Stripe dedupe via setIdentifier. Le test de couverture maintient ce regex en tant que réseau tourné vers l'avenir pour les nouveaux des sites d'appel en forme de ClassName.verb(...), et ajoute un second, une assertion indépendante de ligne épinglant l'exacte StripeIdempotency.forKey( compter par fichier, étant donné que le regex est structurellement incapable de signaler un écrire faite à travers une variable locale.