Amazon REST API - проблема с генерацией правильной подписи PHP - PullRequest
0 голосов
/ 24 декабря 2018

Я с нетерпением жду показа продуктов Amazon.но я получаю signature error.Я применил разные фрагменты, но все еще без прогресса .. :( любая помощь будет оценена.

Рассчитанная нами подпись запроса не соответствует предоставленной вами подписи. Проверьте свой секретный ключ доступа AWS и метод подписиПодробнее см. В сервисной документации.

$AWS_ACCESS_KEY_ID = "MY_ACCESS_KEY";
$AWS_SECRET_ACCESS_KEY = urlencode("MY_SECRET_KEY");

$base_url = "http://webservices.amazon.com/onca/xml?";

$url_params = array('Operation'=>"ItemSearch" , 'Service' => "AWSECommerceService",
                    'AWSAccessKeyId' => $AWS_ACCESS_KEY_ID , 'AssociateTag' => "mytag-20",
                   'Version' => "2013-08-01",'Availability'=>"Available",'Condition'=>"All",
                  'ItemPage'=>"1",'ResponseGroup'=>"Images,ItemAttributes,EditorialReview",
                 'Keywords'=>"Amazon");

// Add the Timestamp
$url_params['Timestamp'] = gmdate("Y-m-d\TH:i:s.\\0\\0\\0\\Z", time());

// Sort the URL parameters
$url_parts = array();
foreach(array_keys($url_params) as $key){
    $url_parts[] = $key."=".$url_params[$key];
}
sort($url_parts);


$string_to_sign = "GET\nwebservices.amazon.com\n/onca/xml\n".implode("&",$url_parts);
$string_to_sign = urlencode($string_to_sign);

$signature = hash_hmac("sha256",$string_to_sign,$AWS_SECRET_ACCESS_KEY,TRUE);


$signature = base64_encode($signature);
$signature = urlencode($signature);

$url_string = implode("&",$url_parts);
$url = $base_url.$url_string."&Signature=".$signature;
print $url;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...