2010-06-24 102 views
0

我需要驗證從ankoder.com誰提供了以下描述回調簽名:驗證通知簽名(PHP)

它的Base64編碼的HMAC-SHA1摘要的網址轉義的字符串私鑰和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代碼?

編輯 這個問題是尾隨空白被髮送通過。

回答

2

您的PHP代碼與Ruby代碼相匹配。問題一定在其他地方。

檢查密鑰是否正確並正確解析了消息(urldecode,然後是json_decode)。

+0

雖然我還沒有找到解決方案,但我現在完全相信錯誤在於輸入字符串,因此我接受了這個答案。 – Gazler 2010-06-26 18:00:08