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

Node.js服务器中Stripe API认证错误:缺失API密钥

Stripe API认证错误:未提供API密钥(React Native + Node.js)

这个错误是你的Node.js服务端在调用Stripe API时没有正确传入API密钥导致的,和你贴的React Native客户端代码无关——客户端只是请求自己的后端接口,后端才是与Stripe交互的主体。

以下是具体排查方向:

  • 检查服务端Stripe初始化代码
    确保你用正确的Secret Key初始化Stripe SDK,代码应该类似:

    const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
    

    注意这里必须用Secret Key(以sk_test_或sk_live_开头),不能用客户端的Publishable Key(以pk_开头)。

  • 验证环境变量是否生效
    在服务端代码中临时添加日志输出,确认环境变量是否正确加载:

    console.log('Stripe Secret Key:', process.env.STRIPE_SECRET_KEY?.slice(0, 5) + '...');
    

    部署后查看服务器日志,如果输出undefined或不是sk_开头,说明环境变量没配置对。

  • 检查部署平台的环境变量设置
    你的后端部署在Railway,需要进入Railway项目的「Variables」页面,确认STRIPE_SECRET_KEY已正确添加,且修改后重新部署了服务(环境变量变更需要重启服务才会生效)。

  • 确认服务端接口代码正确使用Stripe实例
    查看create-checkout-session接口的实现,确保创建会话时用的是初始化好的Stripe实例,示例代码:

    app.post('/create-checkout-session', async (req, res) => {
      try {
        const session = await stripe.checkout.sessions.create({
          payment_method_types: ['card'],
          line_items: [
            {
              price: '你的订阅价格ID',
              quantity: 1,
            },
          ],
          mode: 'subscription',
          success_url: 'https://your-app.com/success',
          cancel_url: 'https://your-app.com/cancel',
        });
        res.json({ url: session.url, session });
      } catch (err) {
        res.status(400).json({ message: err.message });
      }
    });
    

    避免在接口中重新创建Stripe实例,或错误地使用了无效的密钥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 15:43:34