Update Moltin order payment status when refunded in Stripe
Asynchronous microservice that is triggered by Stripe webhooks to update Order data inside of moltin.
Built with Micro! 🤩
Both a moltin and Stripe account are needed for this to function.
Create a .env
at the project root with the following credentials:
MOLTIN_CLIENT_ID=
MOLTIN_CLIENT_SECRET=
STRIPE_SECRET_KEY=
STRIPE_WEBHOOK_SECRET=
Find your MOLTIN_CLIENT_ID
and MOLTIN_CLIENT_SECRET
inside of your moltin Dashboard's API keys.
Find your STRIPE_WEBHOOK_SECRET
inside of your deployed endpoint within Stripe's Webhook Settings area.
Find your STRIPE_SECRET_KEY
within Stripe's API Settings.
Run the following command to build the app
yarn install
Start the development server
yarn dev
The server will typically start on PORT 3000
, if not, make a note for the next step.
Start ngrok (change ngrok port below from 3000 if yarn dev deployed locally on different port above)
ngrok http 3000
Make a note of the https ngrok URL
provided.
Next head over to the Stripe Webhook Settings area, add a new webhook with the following details:
URL to be called | Webhook version | Filter event |
---|---|---|
ngrok URL above |
2018-05-21 (Default) |
'Select types to send' > charge.refunded |
charge
is refunded
this function will be called, but it will only call moltin to update order if 'fully refunded' in Stripe (TODO: if Moltin add support for order.payment = partial_refund then can update to handle).
You can easily deploy this function to now.
Contact Adam Grohs @ Particular. for any questions.