次の説明を提供する 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 コードを複製するにはどうすればよいですか?
編集 問題は、送信される末尾の空白でした。