为什么Stripe事件未触发且webhook无法接收?上线部署后异常咨询
Stripe live模式webhook无事件触发排查步骤
- 确认Stripe后台操作时已切换至live模式:test模式和live模式的webhook配置完全独立,仅在test模式下添加的端点不会在live环境生效
- 确认live模式下添加的webhook端点配置正确:
- 端点URL为完整的Heroku公网地址,包含
https://前缀和完整的接口路径,无拼写错误 - 已勾选你需要监听的事件:
account.updated、checkout.session.completed(注意该事件标准名称为completed而非complete,名称填错不会触发推送) - 端点状态为启用,未被手动禁用
- 端点URL为完整的Heroku公网地址,包含
- 确认部署的应用配置正确:
- 代码中使用的是Stripe live模式的API密钥,而非test模式密钥,两类密钥完全不通用
- 代码中使用的webhook签名密钥是live模式下该端点对应的专属签名密钥,CLI测试、test模式的签名密钥无法在live环境使用,签名校验失败会导致请求被直接丢弃
- webhook端点未配置IP白名单、HTTP身份校验等规则拦截Stripe的公网请求
- 确认Heroku服务运行正常:
- 应用未开启维护模式,没有安全插件、WAF拦截Stripe的POST请求
- 可本地执行
curl -X POST 你的Heroku webhook完整地址验证接口可用性,若返回4xx/5xx错误需先修复服务端问题
- 确认触发事件的操作在live模式下完成:创建Connected账户、生成Checkout会话时使用的是live模式API密钥,用test模式密钥生成的操作不会触发live环境的webhook
- 可直接在Stripe后台live模式的webhook详情页使用「发送测试事件」功能手动推送事件,后台会明确返回请求成功/失败的原因,可根据报错进一步定位问题
内容的提问来源于stack exchange,提问作者Rafael Sofi-zada
相关产品推荐
相关产品推荐

