Php 使用签名验证设置Webhook接收器-计算的哈希值有时会减少一个字符

Php 使用签名验证设置Webhook接收器-计算的哈希值有时会减少一个字符,php,webhooks,hmac,xero-api,Php,Webhooks,Hmac,Xero Api,我正在尝试为XeroAPI开发一个webhook,用于更新联系人 我设法通过了接受验证的意图(最终),多亏了。然而,它并不总是有效的。有时,例如,我使用以下公式计算哈希: $yourHash = base64_encode(hash_hmac('sha256', $payload, $webHookKey, true)); 关闭一个字符-例如,如果Web钩子键可能以mrj/yJ7pZKejaRrN61vAJB开头,则计算出的哈希将用Y或其他字符替换/ 我忽略了什么简单而愚蠢的事情?在安装过程中

我正在尝试为XeroAPI开发一个webhook,用于更新联系人

我设法通过了接受验证的意图(最终),多亏了。然而,它并不总是有效的。有时,例如,我使用以下公式计算哈希:

$yourHash = base64_encode(hash_hmac('sha256', $payload, $webHookKey, true));
关闭一个字符-例如,如果Web钩子键可能以
mrj/yJ7pZKejaRrN61vAJB
开头,则计算出的哈希将用Y或其他字符替换/


我忽略了什么简单而愚蠢的事情?

在安装过程中,Xero发送了几个请求。有些有效,有些无效。无效的需要
401
响应头,而有效的需要
200
响应头。你确定其中一个不是无效的吗?

可以肯定的是,给定两个不同的字符串,哈希算法被一个字符关闭的几率非常低。不管是哪种方式,问题似乎已经自行解决,我的一切都正常工作,所以这可能是我在做的愚蠢的事情。如果他们用错误的密钥/数据对其进行签名,从而使其无效,则为真。但我怀疑他们只是随机改变了散列中的一两个字符。