form action="/api/checkout" method="POST" class='mt10'> Button type="submit" role="link" variant="contained" size="large" > 申し込み /Button> /form>
const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY); export default async function handler(req, res) { if (req.method === 'POST') { try { const session = await stripe.checkout.sessions.create({ line_items: [ { price: "商品id", quantity: 1, }, ], mode: 'subscription', success_url: `${req.headers.origin}/?success=true`, cancel_url: `${req.headers.origin}/?canceled=true`, }); res.redirect(303, session.url); } catch (err) { res.status(500).json(err.message); } } else { res.setHeader('Allow', 'POST'); res.status(405).end('Method Not Allowed'); } }
NEXT_PUBLIC_STRIPE_PUBLISHABLE_KEY="公開可能キー" STRIPE_SECRET_KEY="シークレットキー"