Hacer que los grupos de facturación funcionen a extremo, y dejar de pagar por cuenta propia por nada

FeatureBillingService
Se descapó
11 de agosto de 2026 a las 18:10 UTC
Autor
Kamo
Compromit
3364634

Un grupo ahora puede reunir a la gente, comprar un plan en la propia tarjeta de su gerente, y la mano sus asientos fuera. Nada de eso existía: las únicas operaciones fueron creadas, aprueban y borrar, así que un propietario que hizo un grupo consiguió una etiqueta y no hay manera de usarla. BillingGroupSeatService es donde se mueve dinero y se emite derecho, se mantiene aparte del registro para que no se pueda añadir ninguna nueva ruta que salte las puertas. suscripción() se niega antes de crear () se llama en lugar de después, porque crear () abre una suscripción en vivo Stripe a un grupo no aprobado, uno heredado, un gerente sin tarjeta o una brecha de tapa de asiento parada allí. Dos defectos hicieron que el grupo facturara de la persona equivocada: - El pagador era cualquier cuentaUid la petición que el cuerpo de solicitud no se controlaba, y el La consola envió la organización. Un grupo facturado a la organización no es un Grupo de facturación; es un segundo nombre para la propia suscripción de la organización. El pagador se deriva ahora del gerente y los dos se aseguran de ponerse de acuerdo antes de que se cargue nada. Envío de cuentaUid es rechazado de plano. - asegurarAccountForMember reutiliza el enlace de contador más antiguo del miembro, que para Cualquier persona añadida a la cuenta de la organización es la cuenta de la organización. asegurarPersonalAccountForMember identifica por parte de la gremimbre primario en su lugar, que es el único campo que dice una cuenta pertenece a una persona. Donde un propietario gestiona su propio grupo, "su tarjeta" y "la organización" tarjeta" son genuinamente la misma fila de cuenta y el mismo cliente de Stripe, y no El código puede distinguirlos. Eso se rechaza a menos que se confirme, en lugar de en papel ya está. Por separado, dos bichos vivos se encontraron aquí: - /-sea acusó al miembro y nunca les dio un asiento. Llamó a crear () y devolvió; no hubo fila de suscripción y no había cuentaLicense, así que el comprador se quedó sin licencia mientras su tarjeta era facturada todos los meses. - Transacción en AccountBillingService se había desplazado a un método privado, así que La primavera lo ignoró y se aseguró de queAccountForMember corriera sin ninguna transacción. A Fallo entre sus dos salvas huérfano una cuenta la siguiente mirada no pudo ver, y la siguiente llamada creó una segunda. /self/coverage es nuevo: responde "quién paga mi asiento", que nada hizo. También es lo que impide que a alguien ya cubierto le ofrezcan un segundo asiento en su propia carta.

Todos los cambios

Como lo que ves enviaste?

Cada una de estas actualizaciones aterriza en su espacio de trabajo automáticamente. Empieza gratis y verlo crecer semana tras semana.

Arranzar gratis para siempreVer Precios