Skip to content

Latest commit

 

History

History
124 lines (90 loc) · 5.34 KB

File metadata and controls

124 lines (90 loc) · 5.34 KB

Example using Stripe with TypeScript and react-stripe-js 🔒💸

This is a full-stack TypeScript example using:

Included functionality

How to use

Using create-next-app

Execute create-next-app with npm or Yarn to bootstrap the example:

npm init next-app --example with-stripe-typescript with-stripe-typescript-app
# or
yarn create next-app --example with-stripe-typescript with-stripe-typescript-app

Download manually

Download the example:

curl https://codeload.github.com/zeit/next.js/tar.gz/canary | tar -xz --strip=2 next.js-canary/examples/with-stripe-typescript
cd with-stripe-typescript

Required configuration

Copy the .env.example file into a file named .env in the root directory of this project:

cp .env.example .env

You will need a Stripe account (register) to run this sample. Go to the Stripe developer dashboard to find your API keys and replace them in the .env file.

STRIPE_PUBLISHABLE_KEY=<replace-with-your-publishable-key>
STRIPE_SECRET_KEY=<replace-with-your-secret-key>

Now install the dependencies and start the development server.

npm install
npm run dev
# or
yarn
yarn dev

Forward webhooks to your local dev server

First install the CLI and link your Stripe account.

Next, start the webhook forwarding:

stripe listen --forward-to localhost:3000/api/webhooks

The CLI will print a webhook secret key to the console. Set STRIPE_WEBHOOK_SECRET to this value in your .env file.

Deploy it to the cloud with ZEIT Now

Install Now (download)

Add your Stripe secrets to Now:

now secrets add stripe_publishable_key pk_***
now secrets add stripe_secret_key sk_***
now secrets add stripe_webhook_secret whsec_***

To start the deploy, run:

now

After the successful deploy, Now will show you the URL for your site. Copy that URL (https://your-url.now.sh/api/webhooks) and create a live webhook endpoint in your Stripe dashboard.

Note that your live webhook will have a different secret. To update it in your deployed application you will need to first remove the existing secret and then add the new secret:

now secrets rm stripe_webhook_secret
now secrets add stripe_webhook_secret whsec_***

As the secrets are set as env vars in the project at deploy time, we will need to redeploy our app after we made changes to the secrets. Run now again to redeploy with the new secret value.