← AI 百科

Webhook签名校验

AI编程 · AI编程基础
一句话:验证Webhook请求确实来自支付、平台或第三方服务,防止伪造通知篡改订单和会员状态。

它是什么

Webhook签名校验是在接收第三方回调时,用密钥验证请求内容有没有被伪造或篡改。支付成功、订阅续费、退款、自动化通知都常靠Webhook触发。如果不校验签名,别人可能伪造支付成功通知,让系统错误开通会员。

适合干什么

  • 接入支付回调的人
  • 做订阅会员系统的人
  • 接Zapier、Make、n8n回调的人
  • 做订单、发货、开通权益自动化的人

不适合干什么

  • 本地手动触发的小脚本
  • 不涉及安全和状态变更的测试通知
  • 完全没有外部回调的项目

普通人怎么用

  • 从服务商后台拿Webhook Secret
  • 接收原始请求体
  • 用官方方法计算签名
  • 比对请求头中的签名
  • 校验通过后再更新订单或会员

进阶用户怎么用

  • 校验时间戳防重放攻击
  • 记录事件ID避免重复处理
  • 把回调处理做成幂等
  • 失败回调进入重试和告警队列

常见误区

  • 先JSON解析再校验,导致原始内容变化
  • 不校验签名就开通会员
  • 重复Webhook导致订单重复处理
  • 测试环境和生产环境Secret混用

和相似工具的区别

  • Webhook签名校验 vs API Key:API Key通常用于主动请求鉴权,Webhook签名用于验证对方推送过来的请求。
  • 签名校验 vs HTTPS:HTTPS保护传输过程,签名校验验证请求来源和内容完整性。

入门步骤

  • 配置Webhook Secret
  • 接收原始body
  • 读取签名请求头
  • 用官方SDK验证
  • 校验事件ID
  • 更新业务状态

推荐工具(第三方)

Stripe CLI、支付平台控制台、Postman、ngrok、后端日志