Gebühren, was der Katalog sagt, einmal, für die richtige Menge

FixBillingService
Verschifft
10. August 2026 um 23:54 UTC
Autor
Kamo
Ausschuss
c54414c

Fünf Mängel, die alle bewegte echtes Geld, plus die Sub-Ressource IDOR unter ihnen. Abrechnungszyklen. ANNUAL Preise wurden an Stripe zum gespeicherten Monatspreis gesendet ein JAHR-Intervall, so dass ein Plan als "$28/mo jährlich" in Rechnung gestellt $28 einmal im Jahr in Rechnung gestellt . 12x unterladen. QUARTERLY und SEMI_ANNUAL auf ein MONTH Intervall abgebildet und nie setzen inter inter_count, trotz eines Kommentars, der etwas anderes behauptet, die volle Abrechnung Zeitraum Betrag jeden Monat. BillingCycles besitzt jetzt die Konvertierung und Dokumente die zwei Preiskonventionen, die die Codebasis wirklich hat: AbonnementPrice trägt eine Monatsrate, ************ eine Gesamtsumme. Preismodell. Jedes Add-on wurde in Menge = Sitze unabhängig von seiner PreisModell, so dass die org-weite Speicher-Add-on Kosten 25x auf einem 25-Sitz Org, und weil Stripe lehnt eine Menge auf einem dosierten Preis, einschließlich es machte die ganze Abonnement erstellen werfen. Menge folgt nun dem Modell: Sitze für PER_SEAT, 1 für FLAT, fehlt für USAGE_BASED, übersprungen für ONE_TIME. Planänderungen. Die Konsolen-Posts erstellen() für "Change Plan"; create() genannt Abonnement. bedingungslos erstellen und überschrieben die gespeicherte ID, so dass die vorherigen Stripe-Abonnement live und unreferenziert - doppelt in Rechnung gestellt, für immer. Es ändert nun das bestehende Abonnement, wenn es eine gibt. update() hat den Plan erhalten ändern, hatte es still verworfen, und versöhnt jede Zeile Element eher als nur Artikel[0], die Add-on-Mengen an jedem Sitz eingefroren gelassen hatte Zählung war an dem Tag, an dem das Abonnement eröffnet wurde. Add-on-Autorisierung. update() schrieb addonCodes direkt aus dem Antragskörper, die genaue Selbst-Grant-Loch create() wurde gegen gehärtet: ein FREE-Tier-Anrufer könnte senden {"addonCodes":["MLOS"] und berechtigt die Hypothek App, nicht abstimmen. Beide Wege gehen nun durch resolveAddonCodes. Sitze. assign() fragte nur, ob eine UNASSIGNED-Reihe existierte, und Zeilen nie zerstört, wenn die Sitzzahl schrumpfte, so ein Org, die 10 Sitze auf 3 geschnitten könnte alle zehn neu zuweisen. Es prüft jetzt die Kapazitäten sowohl auf der frischen und der Reaktivierungszweig, weigert sich, Sitze auf einem abgelaufenen Abonnement ausstellen, und sicherstellen, dassSeatRows Ersatzplätze zurückfordert. Ein storniertes oder unbezahltes Stripe-Abonnement jetzt erhlt seine Lizenzen - der Webhook schrieb den Status und gestoppt, so Mitglieder gehalten bezahlte Funktionen auf unbestimmte Zeit. Genehmigung. Nachweis des Eigentums von {accountUid] war die gesamte Überprüfung; Handler dann geladen Abonnements und Lizenzen durch ihre eigene ID und nie verglichen, so Paarung Ihrer eigenen Konto-ID mit einem ausländischen UUID storniert jemand anderes bezahlt Abonnement oder widerrufen seinen Sitz. Zentral in den Abfangjäger so Routen gebunden Später hinzugefügt werden standardmäßig abgedeckt. Fügt die ersten Tests über Preisumwandlung, die keine hatte.

Alle Änderungen

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen