Skip to content
This repository has been archived by the owner on Apr 8, 2024. It is now read-only.

This Particular example demonstrates how you can track unique Usage Records for Metered Pricing Subscriptions in Stripe.

License

Notifications You must be signed in to change notification settings

uniquelyparticular/stripe-distinct-usage-tracking

Repository files navigation

@particular./stripe-distinct-usage-tracking

npm version semantic-release code style: prettier CircleCI dependency status: david

Stripe Metered Pricing unique usage tracking implementation to increment Subscriptions Usage Record only for distinct new entities

Built with Micro! 🤩

🛠 Setup

Create a .env at the project root with the following credentials:

USAGETRACKING_ORIGIN_WHITELIST=*.mysite.com,*.mycrmplaform.io,*.mycommerceplaform.com,*.now.sh
USAGETRACKING_SECRET_HEADER=x-webhook-secret-key
USAGETRACKING_SECRET_KEY=zxasda
STRIPE_SECRET_KEY=sk12312312312312312

USAGETRACKING_ORIGIN_WHITELIST is a comma separated list of patterns to match against the incoming requests 'Origin' header (ex. localhost,*.myawesomesite.com,*.now.sh)

USAGETRACKING_SECRET_HEADER will default to 'x-shared-secret' and will be used to look for a header value to use for decryption.

USAGETRACKING_SECRET_VALUE will be used for decryption in conjunction w/ the value send in the USAGETRACKING_SECRET_HEADER header's value.

Find your STRIPE_SECRET_KEY within Stripe's API Settings.

📦 Package

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.

🚀 Deploy

You can easily deploy this function to now.

Contact Adam Grohs @ Particular. for any questions.