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

Stripe支付网关Axios请求报错:.env密钥未加载问题求助

Stripe认证错误:.env文件密钥未加载的常见原因
  • .env文件路径或命名错误
    后端项目的.env文件必须放在项目根目录,且文件名严格为.env(如果是特定环境,比如开发环境需使用.env.development,同时要确保框架支持加载对应环境的配置文件)。如果文件位置不对(比如放在src子目录)或命名拼写错误(比如写成.env.或.env_local),都会导致无法加载。

  • 变量名不匹配或不符合规则
    检查代码中读取的环境变量名和.env里的是否完全一致(环境变量名大小写敏感)。比如代码里写的是process.env.STRIPE_SECRET_KEY,但.env里是STRIPE_KEY,就会读取到undefined。另外,部分框架对后端环境变量有前缀要求,要确认是否符合框架规则。

  • 未正确加载dotenv依赖(Node.js后端)
    若后端基于Node.js,需先安装dotenv包,然后在项目入口文件最顶部执行加载代码:

    require('dotenv').config();
    

    如果没安装dotenv,或者加载语句放在了Stripe初始化代码之后,会导致读取环境变量时还未加载,值为undefined。

  • 环境变量加载时机错误
    确保dotenv的加载代码在所有依赖环境变量的逻辑之前执行。比如不能先初始化Stripe,再加载.env:

    // 错误写法:先初始化Stripe,此时.env还没加载
    const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
    require('dotenv').config();
    
    // 正确写法:先加载.env,再初始化Stripe
    require('dotenv').config();
    const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
    
  • .env文件格式错误

    • 变量值不要加引号:比如STRIPE_SECRET_KEY="sk_test_xxx"会导致读取到的密钥带引号,Stripe识别为无效密钥,应直接写STRIPE_SECRET_KEY=sk_test_xxx(值含特殊字符除外)。
    • 变量名和值之间不要加空格:比如STRIPE_SECRET_KEY = sk_test_xxx这种写法会导致读取失败,需去掉空格。
  • 服务未重启或缓存问题
    修改.env文件后,必须重启后端服务才能加载新的环境变量。如果只是修改文件但没重启,旧的缓存值仍会生效。部分IDE或终端也可能缓存环境变量,必要时需重启IDE或终端窗口。

  • 部署环境配置问题
    如果是在Docker、云平台(如Vercel、Heroku)等环境运行,不能依赖本地的.env文件:

    • Docker需通过--env-file参数指定.env文件,或在Dockerfile中添加复制指令;
    • 云平台需在控制台的环境变量配置面板手动添加密钥,而不是上传本地.env文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 08:47:28