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

Django集成Stripe Webhooks:Stripe CLI无法触发但Postman正常

Django集成Stripe Webhooks排查方案

1. 盯紧Stripe CLI的配置与日志

  • 确认CLI转发命令的地址和Django运行地址完全匹配:比如Django跑在127.0.0.1:8000,CLI命令必须是stripe listen --forward-to 127.0.0.1:8000/你的webhook路径/,注意端口、路径拼写,尤其是末尾的斜杠别漏。
  • 运行CLI后,先看控制台有没有输出Ready! Your webhook signing secret is whsec_xxx,这说明CLI正常启动。支付完成后,看CLI有没有打印[INFO] Forwarded event to ...的日志——如果没有,说明CLI根本没捕获到Stripe事件,大概率是CLI登录的Stripe账号和你测试支付的账号不是同一个,重新用stripe login切换账号试试。

2. 检查Django Webhook视图的核心逻辑

  • 你用的签名密钥必须是Stripe CLI生成的那个whsec_xxx,别和生产环境的密钥搞混了。
  • 重点排查request.body是否被篡改:DRF默认的解析器会提前解析请求体,导致Stripe验证签名时拿到的不是原始字节流。解决方法是给Webhook视图禁用DRF解析器,同时加上CSRF豁免:
    from rest_framework.decorators import api_view, parser_classes
    from rest_framework.parsers import ParseNone
    from django.views.decorators.csrf import csrf_exempt
    import stripe
    
    @csrf_exempt
    @api_view(['POST'])
    @parser_classes([ParseNone])
    def stripe_webhook(request):
        stripe_secret = "你的CLI签名密钥"
        try:
            event = stripe.Webhook.construct_event(
                request.body,
                request.META['HTTP_STRIPE_SIGNATURE'],
                stripe_secret
            )
        except ValueError as e:
            # 请求体格式错误
            return HttpResponse(status=400)
        except stripe.error.SignatureVerificationError as e:
            # 签名验证失败
            return HttpResponse(status=400)
        # 处理事件逻辑
        return HttpResponse(status=200)
    

3. 本地服务器绑定的小细节

  • 试试把Django绑定到0.0.0.0启动:python manage.py runserver 0.0.0.0:8000,然后CLI转发命令改成stripe listen --forward-to 0.0.0.0:8000/你的webhook路径/,Windows下有时候localhost的解析会有小问题。

4. Stripe事件的订阅与状态排查

  • 用stripe listen时,默认监听所有事件,但如果你加了--events参数指定了特定事件,确认你测试的支付触发的事件(比如payment_intent.succeeded)在列表里。
  • 去Stripe后台的「Events」页面,找到你测试支付对应的事件,看状态是「Sent」还是「Failed」:如果是Failed,点击进去看错误详情,比如“Connection refused”或者“Signature mismatch”,直接定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 11:46:05