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

求助:Stripe重复向WhatsApp Bot服务器发送支付回调请求

WhatsApp Bot + Stripe 重复回调问题排查方案
  • 检查Webhook端点响应状态
    Stripe重复发送回调的核心原因之一是端点未在10秒内返回200 OK,或返回了非2xx状态码。Stripe会对这类情况触发指数退避重试。

    • 先简化端点逻辑,仅返回200 OK测试,若不再重复触发,说明原逻辑里的耗时操作(比如同步发送WhatsApp消息)导致超时,需改成异步处理。
    • 确保服务器网络稳定,不会出现请求丢包或延迟过高的情况。
  • 实现事件幂等性校验
    Stripe每个事件都有唯一的id,必须在服务端记录已处理的事件ID,避免重复执行业务逻辑:

    # 示例伪代码(可根据你的开发语言调整)
    def handle_stripe_webhook(event):
        # 从数据库/缓存中查询是否已处理该事件
        if is_event_processed(event.id):
            return 200
        # 执行支付成功后的逻辑(发送感谢消息等)
        send_thank_you_message(event.data.object.customer)
        # 标记事件为已处理
        mark_event_as_processed(event.id)
        return 200
    
    • 把已处理的事件ID持久化到数据库(比如MySQL、Redis),避免服务器重启后丢失记录。
  • 核对Stripe Webhook配置

    • 登录Stripe测试后台,进入Webhook详情页,确认invoice_successful和invoice_failed事件仅订阅一次,无重复订阅。
    • 查看该端点的重试记录,若存在大量“失败重试”,说明端点响应存在问题,针对性修复即可。
  • 排查业务逻辑是否重复生成事件

    • 检查你的订单创建逻辑,是否存在重复调用Stripe API生成invoice的情况,导致Stripe多次触发invoice_successful事件。
    • 查看Stripe Dashboard的事件列表,确认重复回调的事件ID是否一致:若ID相同是重试问题,若ID不同则是业务端重复生成事件。
  • 测试环境特殊场景验证
    换用Stripe官方测试卡片(如4242 4242 4242 4242)重新发起支付,排除测试卡片或测试操作导致的异常重复事件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 20:14:57