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

如何为Heroku托管的应用配置Stripe Webhook端点?

Stripe Webhook生产环境超时(连接远程主机超时)解决方案

给你明确的配置排查步骤,按顺序执行:

  • 优先用Heroku默认域名测试端点
    先把Stripe后台的Webhook临时换成Heroku默认域名格式:https://[你的Heroku应用名].herokuapp.com/users/stripe/webhook,触发一个测试事件(比如checkout.session.completed)。如果这个能正常接收,说明自定义域名的解析/SSL有问题;如果还是超时,就排查应用本身的问题。

  • 自定义域名的验证要点

    1. 确认SSL证书有效:在Heroku后台「Settings」→「Domains and certificates」里查看,确保ACM(自动证书管理)已启用,自定义域名的SSL状态为ok。Stripe会拒绝无效或过期证书的HTTPS端点。
    2. 检查DNS解析:用命令行执行nslookup myapp.com,确认返回的IP或CNAME是Heroku的目标地址,没有解析错误或缓存问题。
    3. 手动测试端点可达性:用curl命令模拟Stripe请求:
      curl -X POST https://myapp.com/users/stripe/webhook -H "Content-Type: application/json" -d '{"type": "test.event"}'
      
      确保能快速返回200状态码,没有超时或连接拒绝。
  • Heroku应用层面的排查

    1. 避免dyno休眠:免费/入门级dyno长时间无请求会休眠,Stripe的Webhook请求可能刚好赶上休眠启动导致超时。可以用定期ping工具保持dyno活跃,或者升级到专业级dyno。
    2. 优化Webhook响应速度:Stripe要求端点在10秒内返回响应,如果你在Webhook代码里做了耗时操作(比如数据库写入、第三方API调用),一定要改成异步处理——先返回200 OK给Stripe,再后台执行业务逻辑(比如用Node.js的setImmediate,或者Heroku的Redis+Worker处理)。
    3. 查看Heroku日志:执行heroku logs --tail,实时查看当Stripe发送Webhook时的日志,有没有连接错误、代码异常等信息,这是定位问题的关键。
  • Stripe后台的细节配置

    1. 用生产环境签名密钥:不要把测试环境的签名密钥用到生产环境,在Stripe后台「Webhooks」→「Signing secret」里复制生产环境的密钥,确保代码里验证签名的逻辑正确。
    2. 只订阅必要的事件:减少不必要的Webhook请求,避免占用应用资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 18:01:24