PHPのamazonAPI認証関数
タイムスタンプ付きのURLを入れると、署名入りのURLを返してくれる。(関数の$secret_keyは自分のものに直す)
by [PHP] Amazon Product Advertising API で認証付きリクエストを送る方法まとめ
function add_signature($url){// "Your Secret Access Key"
$secret_key = "1234567890";
$ret_char = "\n";
$url_array = parse_url($url);
parse_str($url_array["query"], $param_array);
$param_array["Timestamp"] = gmdate("Y-m-d\TH:i:s\Z");
ksort($param_array);
$str = "GET".$ret_char.$url_array["host"].$ret_char.$url_array["path"].$ret_char;
$str_param = "";
while( list($key, $value) = each($param_array) ){
$str_param =
$str_param.strtr($key, "_", ".")."=".rawurlencode($value)."&";
}
$str = $str.substr($str_param, 0, strlen($str_param)-1);
$signature = base64_encode( hash_hmac("sha256", $str, $secret_key, true) );
$url_sig =
"http://".$url_array["host"].$url_array["path"]."?".
$str_param."Signature=".rawurlencode($signature);
return $url_sig;
}