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

Stripe支付成功后重定向失败:Cannot get /success问题求助

问题分析与解决方案

1. 修复Stripe会话创建的语法错误

你的Server.js里创建Stripe会话的代码存在语法错误,导致cancel_url未被正确传入会话配置,同时可能引发其他异常:

// 错误代码
const session = await stripe.checkout.sessions.create({
    line_items: lineItems ,
    mode: 'payment',
    success_url: `${success}`
    }), // 此处多了右括号和逗号,导致cancel_url不在配置对象内
    cancel_url: `${cancel}`,
});

修正为:

const session = await stripe.checkout.sessions.create({
    line_items: lineItems,
    mode: 'payment',
    success_url: success,
    cancel_url: cancel // 将cancel_url移入配置对象内部
});

2. 解决Cannot get /success路由问题

出现该错误是因为Express服务器未对/success和/cancel路径提供对应资源,分两种场景处理:

场景一:使用静态HTML页面

在项目的public文件夹下创建success.html和cancel.html文件,确保express.static('public')能正确返回这些页面。

场景二:React单页应用(SPA)

如果是React项目,需要配置Express支持SPA路由 fallback,让所有非API请求都返回React入口文件(通常是public/index.html):

  1. 安装依赖:
npm install connect-history-api-fallback
  1. 修改Server.js:
require('dotenv').config()
const stripe = require('stripe')(process.env.REACT_APP_STRIPE_SECRET_KEY);
const express = require('express');
const history = require('connect-history-api-fallback');
const app = express();

// 先配置history fallback,再处理静态文件
app.use(history());
app.use(express.json())
app.use(express.static('public'));

const success = 'http://localhost:3000/success';
const cancel = 'http://localhost:3000/cancel';

app.post('/create-checkout-session', async (req, res) => {
  const lineItems = req.body
  console.log(req.body)
  const session = await stripe.checkout.sessions.create({
    line_items: lineItems,
    mode: 'payment',
    success_url: success,
    cancel_url: cancel
  });
  return res.json({url: session.url});
});

app.listen(3000, () => console.log('Running on port 3000'));

额外检查点

  • 若使用React Router,确认项目中已创建/success和/cancel对应的路由组件。
  • 若需要后续异步通知,可检查Stripe控制台的Webhook配置,但当前重定向问题主要由上述两点解决。

内容的提问来源于stack exchange,提问作者Gabriel Ribeiro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.28 01:53:29