This webhook listens for new subscribers to Val Town Pro from Stripe and sends the Val Town team a Discord notifcation.
We have an additional webhook in the core Val Town app that takes care of updating user's tier to let Pro users access premium features.
To create your own Stripe webhook that listens for new subscribers:
customer.subscription.updated
as the event to listen to (more on this below)stripe_sk_customer_readonly
to your Val Town Env Variables (you can find this on the left sidebar)STRIPE_WEBHOOK_SECRET
to your Val Town Env Variables (you can find this on the left sidebar)Stripe sends webhooks for many different kinds of events. Relevant for us here are:
customer.subscription.created
(what we used to listen for)customer.subscription.updated
(what we're currently listening for)The issue with customer.subscription.created
is that it triggers too early,
before the user's payment actually goes through. This is a problem
because in early Nov 2024 we started getting fraudsters
testing stolen credit cards using our service. We started getting lots of notifications
for new subscriptions that never actually became active.
If anyone knows good ways to prevent that sort of behavior at
the root, please let me know by commenting on this val!
In order to only get notified on a successfuly created subscription, we now subscribe
to customer.subscription.updated
. This event happens on any subscription change,
including renewals and cancellations, so now we have to filter those events
to only get new subscriptions, ie where:
event.data.previous_attributes.status === 'incomplete' && event.data.object.status === 'active'
Migrated from folder: Archive/prod/newStripeSubscriber