【发布时间】:2016-05-13 10:08:50
【问题描述】:
这快把我逼疯了。
我正在尝试按照此处的建议生成签名:https://www.reed.co.uk/developers/SignatureTest
这边:
function createSignature($queryUrl, $timestamp, $apiKey, $http = "GET", $agent = "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)"){
$signature = $http . $agent . $queryUrl . "www.reed.co.uk" . $timestamp;
$signature = base64_encode(hash_hmac("sha1", $signature, $apiKey, true));
return $signature;
}
$clientId = 1;
$timestamp = "2016-05-13T09:22:50Z";
$apiKey = "bacd2d2d-8b69-43c8-94c5-4a24c0269b79";
$queryUrl = "https://www.reed.co.uk/recruiter/api/1.0/cvsearch";
$reedQuery = \Httpful\Request::get($queryUrl)
->addHeaders(array(
"X-ApiSignature" => createSignature($queryUrl, $timestamp, $apiKey),
"X-ApiClientId" => $clientId,
"X-TimeStamp" => $timestamp
))
->expectsJson()
->send();
print_r($reedQuery);
现在由于某些原因它在我的服务器上返回:WRTjqQKfyEQyLJEzWWuT3SWgGPk=
而预期的结果是:JUgvCh5oeFYe1HDmfiMObOu1+nQ=
我尝试了一切,甚至从小端切换到大端。 什么都没有。
怎么了??? :(
【问题讨论】:
-
换一种方式试试? $signature = base64_encode(hash_hmac("sha1", $apiKey, $signature, true));
-
@BasvanStein 你是什么意思?
-
对hash_hmac函数的第2个和第3个参数进行翻转。所以要散列签名而不是密钥。
-
@BasvanStein 什么都没有