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

AWS API Gateway+Lambda集成Stripe Webhook时缺失Stripe-Signature header报错

解决Stripe Webhook在AWS API Gateway+Lambda下的400签名头缺失问题

出现Webhook Error: No stripe-signature header value was provided.的核心原因是AWS API Gateway默认不会自动转发所有请求头到Lambda,哪怕是Stripe的关键签名头也需要手动配置映射。按以下步骤解决:

  • 配置API Gateway的请求头映射

    1. 打开AWS API Gateway控制台,找到关联Lambda的目标API和对应Webhook资源
    2. 进入该资源的**集成请求(Integration Request)**设置
    3. 找到HTTP Headers板块,点击「添加头」
    4. 名称填stripe-signature,映射值选择method.request.header.stripe-signature
    5. 保存修改后,重新部署API到对应阶段
  • 检查Lambda的请求头获取逻辑
    如果用的是API Gateway代理集成,请求头会放在event.headers对象里,确保代码能正确读取:

    // Node.js示例
    exports.handler = async (event) => {
      const stripeSig = event.headers['stripe-signature'];
      const rawBody = event.body;
      // Stripe签名验证逻辑
      const stripe = require('stripe')(process.env.STRIPE_SECRET_KEY);
      try {
        const webhookEvent = stripe.webhooks.constructEvent(
          rawBody,
          stripeSig,
          process.env.STRIPE_WEBHOOK_SECRET
        );
        // 处理Webhook事件逻辑
        return { statusCode: 200, body: JSON.stringify({ received: true }) };
      } catch (err) {
        return { statusCode: 400, body: `Webhook Error: ${err.message}` };
      }
    };
    

    若为非代理集成,需确认已将签名头映射到Lambda的事件参数中。

  • 最终配置验证

    1. 确认Stripe Dashboard里的Webhook端点是API Gateway部署后的公网URL
    2. 检查Lambda环境变量是否正确配置了Stripe的Webhook签名密钥(注意不是普通API密钥)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 09:32:39