Signature 包含一个时间戳和签名。t= 为前缀,签名以v1为前缀。whsec_ 。,作为分隔符,拆分并提取签名的元素。然后用= 号来连接元素的前缀和值。t对应的值是时间戳,v1对应的是签名。t=1687845304,v1=6fdfb9c357542b8ee07277f5fca2c6f728bae2dce9be2f91412f4de922c1bae4signed_payload 字符串signed_payload 字符串是通过连接以下内容创建的:.signed_payload** 字符串1687845304+.+JSON payload1687845304.{
"id": "evt_1NNUrjL6kclEVx6Mb1x5dKJ3",
"object": "event",
"api_version": "2022-11-15",
"created": 1687845303,
"data": {
"object": {
"id": "prod_O9oUVgsSaordCT",
"object": "product",
"active": true,
"livemode": true,
"name": "test",
"type": "service",
"livemode": true,
"pending_webhooks": 1,
"type": "product.created"
}webhook.secret得到您webhook的密钥。这个whsec_ 将作为生成 HMAC字符的Keysigned_payload 字符串生成 HMAC字符的Messagecreated对应的时间戳和报头中的签名中时间戳之间的差值,然后判断差值是否在您的容差范围内。