You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js app目录下API路由处理器如何获取URL动态参数?

Next.js 13 App 目录 API 路由获取路径参数的正确方式

你的代码问题在于错误地从查询参数中获取sessionId,但实际你的请求URL是/api/stripe/${sessionId},其中sessionId是路径参数,对应路由文件api/stripe/[session]/route.js里的[session]占位符。

修正后的代码

import Stripe from "stripe";
import { NextResponse } from 'next/server';

// 注意:环境变量名拼写错误,应该是STRIPE_SECRET_KEY(SECRET而非SECRETE)
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);

export async function GET(req, { params }) {
  // 从路径参数中获取sessionId,对应路由里的[session]占位符
  const sessionId = params.session;
  console.log(sessionId);

  try {
    const checkoutSession = await stripe.checkout.sessions.retrieve(sessionId);
    return NextResponse.json({ checkoutSession });
  } catch (error) {
    // 增加错误处理,返回错误信息
    return NextResponse.json({ error: error.message }, { status: 500 });
  }
}

关键说明

  • 在Next.js 13 App目录的API路由中,路径参数通过context.params获取,其中params的key对应路由文件名里的占位符(比如[session]对应params.session)。
  • 你原代码里的NextRequest.nextUrl.searchParams是用来获取查询参数的(比如/api/stripe?sessionId=xxx这种格式),和当前的路径参数场景不匹配。
  • 修正了环境变量名的拼写错误,避免Stripe初始化失败。

内容的提问来源于stack exchange,提问作者morris menanya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 14:27:51