microCMSで商品情報を管理し、Stripeで決済を行うサンプルテンプレートです。
https://microcms-template-stripe-simple-commerce.pages.dev/

https://microcms-template-stripe-simple-commerce.pages.dev/products/jf2yshouvaf

Next.jsが利用できる環境をご利用ください。
- Node.js 16.8 or later.
- macOS, Windows (including WSL), and Linux are supported.
https://nextjs.org/docs/getting-started/installation
このテンプレートでは、以下の3つの環境変数が必要です。
# microCMSのAPIキー
MICROCMS_API_KEY=xxxx
# microCMSのサービスドメイン名
MICROCMS_SERVICE_DOMAIN=demo-simple-commerce
# Stripeのシークレットキーまたは制限付きキー
STRIPE_SECRET_API_KEY=sk_test_xxx
Stripeのダッシュボードにログインし、テスト環境・本番環境どちらかの[シークレットキー]を取得しましょう。
npm run dev[Products] APIの[API設定]画面で、https://デプロイしたドメイン/products/{CONTENT_ID}?draft_key={DRAFT_KEY}を設定しましょう。
設定画面は次のようなURLです: https://{MICROCMS_SERVICE_DOMAIN}.microcms.io/apis/products/settings/preview
参考:画面プレビューの仕組み
microCMS Webhookを利用することで、microCMS側で変更した商品情報や価格をStripeに反映できます。
サンプルAPIとして、app/api/webhook/route.tsを用意しました。
このAPIをmicroCMSのWebhookに登録すると、microCMS側で変更した商品名や画像・価格をStripeに同期できます。
ただしこのAPIは、「公開終了時にStripe側のデータを削除・アーカイブすること」や「microCMSで商品情報を公開したタイミングでStripeに同期すること」はできません。
情報変更時の同期のデモAPI・コードとしてお使いください。
なお、Webhhook APIはリクエストの検証を行います。
ドキュメントを参考にシークレットを設定しましょう。
https://document.microcms.io/manual/webhook-setting#hb2d39bd6cc
設定後、環境変数にMICROCMS_WEBHOOK_SECRETとして保存したシークレットを設定します。
MICROCMS_API_KEY=xxxx
MICROCMS_SERVICE_DOMAIN=demo-simple-commerce
STRIPE_SECRET_API_KEY=sk_test_xxx
+MICROCMS_WEBHOOK_SECRET=YOUR_SECRET