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

Stripe订阅模式下PayPal支付生产环境失效问题求助

Stripe订阅模式PayPal支付生产环境无法使用排查与修复

一、代码中的明显错误

在createCheckoutSession函数中,创建Stripe Customer后,构建Checkout Session时使用了未定义的变量id,正确应使用customer.id:

原错误代码片段:

const customer = await stripe.customers.create({
  email: accountData.email,
});
const session = await stripe.checkout.sessions.create({
  // ...其他配置
  customer:id, // 此处id未定义,应为customer.id
  // ...其他配置
});

修正后:

const customer = await stripe.customers.create({
  email: accountData.email,
});
const session = await stripe.checkout.sessions.create({
  // ...其他配置
  customer: customer.id,
  // ...其他配置
});

该错误会直接导致Checkout Session创建失败,测试环境可能因特殊场景未触发报错,但生产环境会抛出明确异常。

二、生产环境配置排查点

  • PayPal账户生产验证:仅激活Stripe控制台的PayPal钱包不够,需关联已完成身份验证的PayPal商业账户,确保生产环境下PayPal支付方式状态为"已启用"。
  • Price币种检查:PayPal在Stripe生产环境仅支持主流币种(如USD、EUR、GBP等),确认订阅计划对应的Price对象币种在支持列表内。
  • API密钥验证:生产环境必须使用以sk_live_开头的生产密钥,测试密钥(sk_test_)无法调用生产环境PayPal接口。
  • Webhook配置:需配置生产环境Webhook端点,并启用checkout.session.completed、customer.subscription.created等关键事件,否则订阅状态无法同步到业务系统。
  • 查看Stripe生产日志:登录Stripe控制台进入「日志 > 生产环境」,筛选checkout.sessions.create或支付相关事件,日志会显示具体错误原因(如权限不足、支付方式不支持等)。
  • 账户权限确认:确保Stripe账户已开通订阅功能,且当前地区支持PayPal支付方式(部分地区需额外申请权限)。

三、代码优化建议

  • 为retreiveCheckoutSession添加错误捕获,避免无效sessionId导致服务崩溃:
exports.retreiveCheckoutSession = async (req, res) => {
  const { sessionId } = req.query;
  try {
    const session = await stripe.checkout.sessions.retrieve(sessionId);
    res.send(session);
  } catch (e) {
    res.status(400).send({ error: { message: e.message } });
  }
};
  • saveSessiondata函数逻辑不完整,需补充stripeData.subscription不存在时的处理分支,避免无响应或异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 04:45:10