Nová verze Stripe API přesunula cestu k subscription ve webhooku
import { Aside } from ‘@astrojs/starlight/components’;
Symptom
Sekce “Symptom”Platby za předplatné ve bráně projdou, ale v DB zůstane status trial — webhook neaktivoval účet.
Root cause
Sekce “Root cause”Nová verze API přesunula referenci na subscription z invoice.subscription do invoice.parent.subscription_details.subscription. Starý kód četl původní cestu → null.
Fix
Sekce “Fix”Číst novou cestu s fallbackem na starou:
const subId = invoice.parent?.subscription_details?.subscription ?? invoice.subscription; // fallback během přechoduJak se tomu vyvarovat v jiných systémech
Sekce “Jak se tomu vyvarovat v jiných systémech”- Detection: při změně verze API porovnej payload diff na testovacím eventu.
- Anti-pattern: napevno zadrátovaná cesta do payloadu 3rd party bez fallbacku.
- Lepší přístup: defenzivní čtení s
??přes obě cesty; pin verze API a migruj vědomě.