Webhook签名校验
一句话:验证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、后端日志