Making Stripe Webhook Handlers Idempotent After a Duplicate Purchase Grant
TIL that Stripe can and will deliver the same webhook event more than once, and a handler that reacts to checkout.session.completed by granting access will happily grant it twice — the fix was recording processed event IDs and treating the handler as a set operation, not an append.
#Stripe