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

部署至Azure后无法接收Stripe Webhook事件求助

Stripe Webhook在Azure部署后无法接收的排查方案

针对你描述的本地正常、Azure部署后无法接收Stripe Webhook的问题,按以下方向逐一排查:

一、端点可访问性验证

  • 确认Webhook端点是公网可访问的HTTPS地址:Azure App Service默认提供HTTPS,需确保Stripe控制台中配置的Webhook URL是部署后的正式HTTPS地址(而非localhost)。
  • 检查Azure访问限制:进入App Service的「网络」->「访问限制」,确认没有添加阻止Stripe请求的规则;如果有企业级防火墙,需放行Stripe官方文档中列出的Webhook发送IP段。
  • 验证端点可用性:用Postman或curl向你的Azure端点发送模拟POST请求,确认能正常接收并返回200状态码。

二、Stripe签名验证配置

  • 核对Webhook Secret:在Azure应用的「配置」->「应用程序设置」中,确保设置的Stripe Webhook Secret与Stripe控制台中对应Webhook的Secret完全一致。
  • 检查签名验证代码:处理Webhook请求时必须正确验证签名,示例代码如下:
    // 从配置中获取Webhook Secret
    var webhookSecret = Configuration["Stripe:WebhookSecret"];
    var json = await new StreamReader(HttpContext.Request.Body).ReadToEndAsync();
    var stripeEvent = EventUtility.ConstructEvent(
        json,
        Request.Headers["Stripe-Signature"],
        webhookSecret
    );
    
    若签名验证失败,请求会被直接拒绝,需在应用日志中查看相关错误信息。

三、Stripe事件状态与支付流程检查

  • 查看Stripe控制台事件详情:进入Stripe Dashboard的「Webhooks」->「Events」,查找对应的charge.succeeded事件,查看交付状态:
    • 若显示「Failed」:根据错误信息定位(如连接超时、SSL错误、签名无效等)。
    • 若未触发该事件:检查对应Payment Intent的状态,是否因OffSession支付需要3DS验证而进入requires_action状态,此时需监听payment_intent.requires_action事件处理验证流程。
  • 确认Payment Intent配置:你的创建代码中Confirm=true+OffSession=true适用于无用户交互的扣费,但需确保支付方式已完成Setup(即卡已成功关联到Customer且支持OffSession支付)。

四、Azure应用日志排查

  • 查看应用请求日志:在Azure Portal的App Service「日志」->「应用程序日志」中,检查是否有Stripe发送的POST请求记录:
    • 无请求记录:说明网络层面拦截了请求,回到第一步排查。
    • 有请求但返回错误码(如400、401、500):根据日志中的异常信息修复代码(如请求体解析错误、未捕获的异常等)。
  • 启用详细日志:在App Service的「配置」->「日志记录」中开启详细错误日志,便于定位问题。

五、SSL证书与代理检查

  • 确认Azure的SSL证书有效:Stripe要求Webhook端点使用有效的公共SSL证书,Azure App Service默认证书符合要求;若使用自定义证书,需确保证书未过期、配置正确。
  • 检查代理/网关配置:若使用Azure Front Door或API Management,需确保路由规则允许POST请求,且未修改Stripe请求的头部或请求体(否则会导致签名验证失败)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 12:45:34