Stripe Webhook返回URL错误跳转至Vercel部署链接问题求助
解决Stripe客户门户返回自定义域名的问题
问题出在你的Next.js代码生成return_url的逻辑上,而非平台后台设置——因为当你调用Stripe API创建客户门户会话时,如果代码里显式指定了return_url,会直接覆盖Stripe后台的默认重定向设置。
你需要做以下几步:
- 找到项目中创建Stripe客户门户会话的API路由(通常是
app/api/portal/route.js或者pages/api/portal.js,取决于你的Next.js版本) - 定位到生成
return_url的代码段,比如这类逻辑:const returnUrl = `${req.headers.protocol}://${req.headers.host}/account`; // 或是依赖了Vercel的默认环境变量 const returnUrl = `https://${process.env.VERCEL_URL}/account`; - 将其替换为基于自定义域名的生成逻辑:
- 在Vercel项目的「设置-环境变量」中添加一个环境变量,比如
APP_URL,值设为你的完整自定义域名(示例:https://your-custom-domain.com) - 修改代码中的
return_url为:const returnUrl = `${process.env.APP_URL}/account`;
- 在Vercel项目的「设置-环境变量」中添加一个环境变量,比如
- 重新部署项目,确保环境变量生效
这样生成的return_url就会稳定指向你的自定义域名,而非Vercel的临时部署URL。
注意:不要依赖req.headers.host或VERCEL_URL环境变量,前者在反向代理场景可能出现异常,后者在Vercel预览/临时部署中会返回临时地址,只有自定义环境变量能稳定指向生产域名。
内容的提问来源于stack exchange,提问作者adoug
相关产品推荐
相关产品推荐

