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 installStart the development server
yarn devThe 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 3000Make 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.