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

Stripe切换live模式后webhook返回403未提供认证凭证如何解决

Stripe Live模式Webhook 403错误排查修复方案

该错误是服务端未正确识别Stripe Live模式发送的webhook请求的合法身份导致,可按以下顺序排查:

  • 校验Webhook签名密钥配置
    测试模式和Live模式的Webhook签名密钥完全独立,登录Stripe后台切换至Live模式,进入Webhooks设置页,找到对应线上服务端点的签名密钥(Signing secret),替换代码/环境变量中之前使用的测试模式签名密钥,不要硬编码密钥,建议用STRIPE_WEBHOOK_SECRET环境变量区分不同环境的配置值。
  • 确认Stripe SDK初始化密钥
    检查生产环境初始化Stripe SDK时传入的是sk_live_开头的Live模式API密钥,而非sk_test_开头的测试密钥,部分框架的Webhook校验逻辑会绑定当前SDK实例的密钥环境,密钥环境不匹配也会触发认证失败。
  • 排查Webhook接口的额外鉴权规则
    确认线上Webhook接口路径没有被全局鉴权规则拦截:如要求用户登录态、校验自定义Header的Token、CDN/WAF的访问控制规则等,Stripe发送的Webhook请求不会携带你业务侧自定义的身份凭证,需要将Webhook路径排除在业务鉴权逻辑之外。
  • 本地复现验证错误原因
    可通过Stripe CLI的Live模式功能直接向线上接口发送测试事件,执行命令stripe trigger payment_intent.succeeded --live,查看服务端的详细报错日志,定位是签名校验失败还是接口权限拦截。
  • 校验签名逻辑的正确性
    确认签名校验时没有传错参数:不要将Stripe API密钥当做Webhook签名密钥传入校验方法,也不要硬编码过滤非测试前缀的事件。正确的Node.js校验逻辑示例如下:
const sig = request.headers['stripe-signature'];
let event;
try {
  event = stripe.webhooks.constructEvent(request.rawBody, sig, process.env.STRIPE_WEBHOOK_SECRET);
} catch (err) {
  return response.status(403).send(`Webhook Error: ${err.message}`);
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 08:54:03