严格按照教程开发Stripe支付功能出现500错误及API密钥未提供报错
问题排查解决步骤
核心根源问题:.env配置文件语法错误
你当前的.env文件里使用冒号:做变量赋值,不符合dotenv的语法规范,dotenv要求变量使用等号=赋值,且等号前后不要添加多余空格:
# 你当前的错误写法 STRIPE_PRIVATE_KEY: 你的Stripe私钥 # 修正后的正确写法 STRIPE_PRIVATE_KEY=你的Stripe私钥
这个语法错误会导致process.env.STRIPE_PRIVATE_KEY读取结果为undefined,Stripe初始化时无法获取到密钥,直接触发API密钥缺失的报错,进而导致接口返回500状态码,这就是你遇到的两个报错的共同原因。
其他补充排查点
- 确认已安装dotenv依赖:在项目根目录执行
npm i dotenv,确保依赖正常安装 - 确认.env文件放在项目根目录,和服务端入口JS文件同层级,不要放在子文件夹内
- 可以在服务端初始化Stripe的代码前加一行日志,验证密钥是否正常读取:
console.log('读取到的Stripe密钥:', process.env.STRIPE_PRIVATE_KEY) const stripe = require("stripe")(process.env.STRIPE_PRIVATE_KEY)
启动服务后查看终端输出,确认能打印出完整的Stripe私钥
- 确认Stripe私钥没有多余的空格、换行符,直接从Stripe后台复制后粘贴到.env的等号后即可,不要加引号或者其他多余字符
- 每次修改.env文件后必须重启Node服务,修改才会生效
修复验证
完成上述修改后重启服务,点击支付按钮就会正常跳转到Stripe支付页,两个报错会同步消失。
内容的提问来源于stack exchange,提问作者Leo
相关产品推荐
相关产品推荐

