- Shipped
- 10 août 2026 à 23:54 UTC
- Author
- Kamo
- Commit
- c54414c
Cinq défauts qui ont tous déplacé de l'argent réel, plus l'IDOR de la sous-ressource en dessous d'eux. Cycles de facturation. Les prix ANNUELS ont été envoyés à Stripe au taux de stockage par mois un intervalle de l'ANNÉE, donc un plan enseigné comme "28 euros/mois annuel" facturé 28 dollars une fois par an - a 12x sous-charge. QUARTERLY et SEMI-ANNUAL mappé à un intervalle MOIS et jamais un nombre d'intervalles, malgré un commentaire affirmant le contraire, facturer l'intégralité montant de la période tous les mois. FactureCycles est désormais propriétaire de la conversion et des documents les deux conventions de prix de la base de code a réellement: SubscriptionPlanPrix est égal à un taux par mois, soit un total. Modèle de prix. Chaque module complémentaire a été facturé à la quantité et aux sièges, quelle que soit sa prixModel, donc l'add-on de stockage à l'échelle de l'ensemble de l'échelle coûte 25x sur un orgorgif de 25 places, et parce que Stripe rejette une quantité sur un prix dosé, y compris elle a fait un abonnement entier crée un jet. La quantité suit maintenant le modèle: sièges pour PER-SEAT, 1 pour FLAT, absent pour USAGE-BASED, sauté pour ONE-TIME. Changements de plan. Les postes de la console créent() pour "Modifier le plan"; create() appelé Subscription.create inconditionnellement et écraser l'identifiant stocké, en laissant le abonnement précédent Stripe en direct et non-référencé - facturé deux fois pour toujours. C'est modifie maintenant l'abonnement existant lorsqu'il y a une mise à jour() obtenu le plan modification qu'il avait été écartée silencieusement, et concilie tout élément de ligne plutôt que les seuls articles[0) qui avaient laissé des quantités d'appoint congelées à n'importe quel siège le compte était le jour de l'ouverture de l'abonnement. L'autorisation d'extension. update() a écrit des addonCodes directement de l'organe de demande, le trou exact auto-subvention create() a été durci contre: un appelant de niveau GRATUIT pourrait envoyer des "codes d'addon": ["MLOS" et donner droit à l'application de crédit hypothécaire, non déclaré. Les deux chemins passent maintenant par la résolutionAddonCodes. Sièges. assigner() seulement demandé s'il existait une ligne UNASSIGNED, et les lignes étaient jamais détruit lorsque le nombre de sièges a diminué, donc un org qui a coupé 10 sièges à 3 pourrait réaffecter les dix. Il vérifie désormais la capacité à la fois à la recherche du nouveau et du la branche de réactivation, refuse d'émettre des sièges sur un abonnement caduque, et ensureSeatRows récupère les créneaux de rechange. Abonnement à Stripe annulé ou non Maintenant failli à ses licences - le webhook a écrit le statut et s'est arrêté, donc les membres les éléments payés pour une durée indéterminée. Autorisation. Prouver la propriété de l'"accountUid" était l'ensemble du contrôle; les gestionnaires puis chargé des abonnements et des licences par leur propre id et jamais comparés, donc associer votre propre compte id avec un UUID étranger annulé le paiement de quelqu'un d'autre abonnez-vous ou a révoqué son siège. Limité au centre dans l'intercepteur ainsi ajoutés ultérieurement sont couverts par défaut. Ajoute les premiers tests sur la conversion des prix, qui n'en avait pas.