Проверка подписи уведомления (PHP) - PullRequest
0 голосов
/ 24 июня 2010

Мне нужно проверить подпись для обратного вызова от ankoder.com, который предоставляет следующее описание:

Это строка с экранированием URL-адреса, закодированного в Base64, дайджест HMAC-SHA1 вашего личного ключа и URL-unescaped message.

$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

Я запускаю это на примере данных, которые я возвратил из обратного вызова, но не получаю ту же подпись.Как мне скопировать код Ruby в PHP?

Редактировать Проблема заключалась в том, что через пробел отправлялись пробелы.

1 Ответ

2 голосов
/ 24 июня 2010

Ваш PHP-код соответствует коду Ruby.Проблема должна быть где-то еще.

Проверьте правильность ключа и правильность синтаксического анализа сообщения (urldecode, затем json_decode).

...