实务专题 · 网站交接

回调验签交接:JSON意思相同,字节未必相同

这是给网站交付需求使用的合成教学例,不是客户成果、真实账号测试或认证。

看似无害的中间件,也可能改变验签证据

支付集成在网站改版后验签失败,应先问原始请求字节在哪里保留。解析器可以保持全部JSON值,却在重新序列化时改变空格或顺序;应用验证的就不再是发送方签过的同一份字节。

所填内容含义演示摘要与原始一致吗
{"id":"evt_demo","ok":true}虚构原始值true
{ "id": "evt_demo", "ok": true }值相同,空格不同false
{"id":"evt_demo","ok":false}值已经改变false

运行填好的例子

下载有限规则Node检查器和已填写输入。使用Node 24或更新版本,不需要账号或API,也不联网。

node checks.mjs webhook-raw-body-evidence webhook-raw-body-evidence.json

示例用明确标注的假密钥SYNTHETIC_NOT_A_SECRET,对输入字符串做SHA-256 HMAC。输出语义相同true、原始匹配true、重新序列化匹配false、改值匹配false。不需要也不索取服务商密钥;这个公开假值绝不能用在真实接口。

请供应商展示什么

在授权环境追踪请求从入口到官方验证函数的字节,展示各中间件是否消费或修改正文。真实验签还依赖正确接口密钥、签名头解析与时间规则;不能靠关闭验签“修复”。

这和“已验证事件只处理一次”不是同一项决定。正确签名不阻止合法重复投递;持久处理也不能认证来源。另一项本地事务问题可看持久接收箱示例。

本例是通用字节演示,不是Stripe验签实现,没有时间容差、签名头处理、密钥轮换或防重放机制。不接公网流量、不改旧接口;真实项目应使用当前官方SDK并独立审核部署合同。

官方依据与边界

Stripe回调签名:其验签要求原始请求正文;本通用HMAC示例并未实现Stripe协议。

来源于2026年10月15日核验。输入与验收规则为原创教学设计;正式实施前还要核对当前平台版本及实际交付合同。