验证通知签名(PHP)

时间:2010-06-24 10:18:54

标签: php notifications signature

我需要验证来自ankoder.com的回调签名,该回复提供以下说明:

它是您的私钥的Base64编码的HMAC-SHA1摘要的URL转义字符串以及URL未转义的消息。

$passkey = urlencode(base64_encode(hash_hmac('sha1', urldecode($str), $private_key, true)));

他们提供以下Ruby示例

encoded_signature = CGI.escape Base64.encode64(HMAC::SHA1::digest(private_key, CGI.unescape(message))).strip

我在从回调中返回的示例数据上运行此操作但未获得相同的签名。如何在PHP中复制Ruby代码?

修改   问题是跟踪发送的空格。

1 个答案:

答案 0 :(得分:2)

您的PHP代码与Ruby代码匹配。问题必定在其他地方。

检查密钥是否正确并正确解析消息(urldecode,然后是json_decode)。