Stripe Checkout Session本地正常,Hostinger部署后无法获取会话ID
解决方案
检查前端API请求路径
本地开发时你可能硬编码了localhost相关的API地址,部署到Hostinger后要替换成网站的实际域名路径。打开Cart.js第84行附近的请求代码,确认请求URL是https://你的域名.com/xxx/api/create-session这类生产环境地址,而不是本地的http://localhost:xxxx。验证后端服务可用性
直接通过Postman或浏览器访问后端的创建Stripe Session接口,看是否能正常返回session ID。如果接口无响应或报错,说明后端没正确部署:- 确认Hostinger支持你的后端运行环境(比如Node.js版本是否匹配);
- 检查后端代码是否完整上传,服务是否处于启动状态。
配置正确的CORS规则
本地开发时的CORS配置可能只允许localhost访问,部署后要更新后端的CORS设置,将你的Hostinger域名加入允许列表。比如Node.js中使用cors中间件时,设置origin: "https://你的域名.com",确保前端能正常跨域请求后端接口。检查Hostinger环境变量与Stripe密钥
- 确认你已经将Stripe的生产环境密钥(不是测试密钥)配置到Hostinger的环境变量中,后端代码能正确读取;
- 登录Hostinger后台查看网站错误日志,排查是否存在Stripe密钥无效、权限不足等后端报错。
排查Stripe Session创建逻辑
检查后端创建Stripe Session的代码,确认订单金额、商品信息等参数是否符合Stripe生产环境的要求,比如金额单位是否正确(需为最小货币单位,比如美元用分),避免因参数错误导致session创建失败,无法返回session ID。
内容的提问来源于stack exchange,提问作者Aladin Famili
相关产品推荐
相关产品推荐

