Stripe Checkout Sessions + Webhookを使った安全な決済フローの実装ガイド。 ## 対象 - Next.js (App Router) + Supabase + Stripe - 買い切り / サブスクリプション / 投げ銭 ## 実装パターン ### 1. Checkout Session 作成 ```typescript const session = await stripe.checkout.sessions.create({ mode: "payment", // or "subscription" currency: detectedCurrency, // JPY or USD customer_email: user.email, line_items: [{ price_data: { currency, product_data: { name, description }, unit_amount }, quantity: 1 }], success_url: `${origin}/complete?session_id={CHECKOUT_SESSION_ID}`, cancel_url: `${origin}/cancel`, metadata: { userId, productId, checkoutType }, }); ``` ### 2. Webhook ハンドラー ```typescript // 署名検証(必須) const event = stripe.webhooks.constructEvent(body, signature, WEBHOOK_SECRET); // 冪等性: session_id で重複チェック const existing = await getPurchaseBySessionId(sessionId); if (existing) return; // skip duplicate // イベント分岐 switch (event.type) { case "checkout.session.completed": // 購入完了 case "customer.subscription.updated": // サブスク更新 case "customer.subscription.deleted": // サブスク解約 } ``` ### 3. マルチカレンシー - Accept-Language から JPY/USD を自動判定 - JPY は小数なし(unit_amount = 4980) - USD はセント単位(unit_amount = 2999 = $29.99) - きれいな価格に丸める($33.37 → $29.99) ### 4. セキュリティ - Webhook シークレット必須(署名検証なしは禁止) - metadata は Stripe から来るが、userId は自前で検証 - エラーメッセージに決済詳細を含めない - レート制限(10回/分)を checkout エンドポイントに適用 ### 5. クリエイター配分 ```typescript const creatorShare = Math.floor(amount * (1 - PLATFORM_FEE_RATE)); await addPoints(creatorId, creatorShare, "earn_sale", description); ``` ### チェックリスト - [ ] STRIPE_SECRET_KEY と STRIPE_WEBHOOK_SECRET を環境変数に設定 - [ ] Webhook URL を Stripe Dashboard に登録 - [ ] 冪等性チェック(同一 session_id のスキップ) - [ ] エラー時のロールバック処理 - [ ] テスト環境と本番環境のキー分離
Philosophy
Skillora では、スキルを売る人も買う人も同じコミュニティにいます。 気に入った作者の新作やアップデートを追いかけたり、自分も出品して還元を受け取ったり。 好きなクリエイターをフォローして、発見と応援をひとつの場所で。
npx skillora install stripe-checkout-guide購入後にターミナルで実行してください。
正規購入者にはインストールコマンド再実行で最新版が配信されます。
継続的な価値を提供します
Skilloraのスキルはライセンス認証で保護されており、定期的にアップデートされます。スクリーンショットやコピーでは最新版を受け取れず、バグ修正や新機能の恩恵も得られません。正規購入者には常に最新バージョンが自動配信されます。
利用規約を確認 →—
評価なし
まだレビューがありません。最初のレビューを書いてみましょう。
Free
無料で導入共有する
SNS・リンクで広める
Stripe Checkout Guide — AIの使い方が変わるスキル
Stripe Checkout+Webhook統合。決済→DB同期→ポイント配分。マルチカレンシー対応。
https://skillora.jp/skills/stripe-checkout-guide
この作者の他のスキル
このスキルに似たスキル
Meta Orchestrator
Freeチェックリスト駆動で一気通貫実行するスキル v3.2。「メタオーケストラで」と明示時のみ起動。 新機能・UI改善・バグ修正・監査など規模不問。「メタオーケストラで○○して」で必ず使うこと。 v3.2: worktree並列ビルド / Spec File駆動 / 150行バジェット追加
Blitz Ios
FreeBlitz — iOS開発自動化(macOS専用)。シミュレーター〜App Store提出まで全自動。 トリガー: iOS開発、iOSアプリ、シミュレーター、App Store提出、Xcode自動化、Swift開発、React Native iOS、Flutter iOS、blitz
Secure Skill Installer
Free外部スキルの安全インストール。セキュリティ3点チェック(静的解析・サプライチェーン・プロンプトインジェクション)付き。