【发布时间】:2022-08-15 15:34:25
【问题描述】:
我正在尝试使用 .Facebook developer docs 中的步骤验证来自 whatsapp webhook 的 webhook 有效负载的内容,
我不明白这是什么意思
请注意,我们使用有效负载的转义 unicode 版本生成签名,带有小写十六进制数字。如果您只是针对解码的字节进行计算,您最终会得到不同的签名。例如,字符串 äöå 应转义为 \\u00e4\\u00f6\\u00e5。
这就是为什么我在比较哈希值时总是得到错误而我想在 php/laravel 中制作它。
有时我尝试使用
$knownSignature = (new UnicodeString($request->getContent()))->normalize(UnicodeString::NFKC);和
$knownSignature = Str::ascii($request->getContent());但还是不匹配。 当我尝试转换 äöå 它仍然输出 \\u00e4\\u00f6\\u00e5 的事件
-
为什么叫这个
$knownSignature,请求内容不是签名,它只是签名的输入数据计算.你应该使用你收到的实际的原始数据——而不是试图使用任何规范化或 ascii 方法来操作它。 -
1. 使用有效负载和您的应用的 App Secret 生成 SHA256 签名。 2. 将您的签名与 X-Hub-Signature-256 标头中的签名(sha256= 之后的所有内容)进行比较。如果签名匹配,则有效负载是真实的。那是文档中所写的内容,因此请使用有效负载对其进行哈希处理,并将其与标头中的签名进行比较
-
@turivishal 它没有给出验证有效载荷的示例
-
@CBroe Function 那是我的功能,请纠正我
标签: php laravel webhooks whatsapi