Zend Framework は、secret keyに今のところ未対応

[#ZF-7033] Zend_Service_Amazon has until Auguest 15, 2009 to authenticate requests with HMAC-SHA256 of the secret key - Zend Framework Issue Tracker

今の時点でのLatest ReleaseのZend Framework 1.8.4 patch 1では、まだ認証付きリクエストを送ることはできないようです。(ソースコードにも$appSecretKey無いし...)なので、とりあえずは、Zend_Service_Amazonは使わずにいます。
でも、Zend_Service_Amazon_Abstractでは、secretKeyの記述があるので、詳しい方だともう実装されているかも?しれません。

そこで、[PHP] Amazon Product Advertising API で認証付きリクエストを送る方法まとめをもとに、今までのリクエストに認証をつけることにしました。

私の環境では無事、hash_hmac が使えましたので、後はhttp://ringoon.jp/さんの仰せのとおりにしました。

<?php   

$secret_key  = "9999999999999999999999999999999999999999";   
   
$test_url = "http://webservices.amazon.com/onca/xml?Service=AWSECommerceServic
e&AWSAccessKeyId=00000000000000000000&Operation=ItemLookup&ItemId
=0679722769&ResponseGroup=ItemAttributes,Offers,Images,Reviews";   
   
// リクエストURLを parse_url() で分解する   
$str_url_data = parse_url($test_url);   
   
// クエリ部分を parse_str() で分解する   
parse_str($str_url_data["query"], $str_query_data);   
   
// クエリを分解した配列に、TimestampとしてGMTのタイムスタンプを加える。
$str_query_data["Timestamp"] = gmdate("Y-m-d")."T".gmdate("H:i:s")."Z"; 

 
// クエリを分解した配列を ksort() で昇順ソート   
ksort($str_query_data);   
   
// クエリのデータの方を、 rawurlencode でRFC 3986にエンコード。クエリデータをくっつける。   
$str_query ="";   
foreach($str_query_data as $key => $element)   
{   
    $str_query .= $key."=".rawurlencode($element)."&";
}   
$str_query .= "Version=2009-01-06";   
   
// 署名原文を作る。    
$signeture_org ="GET\necs.amazonaws.jp\n/onca/xml\n".$str_query;   
   
//HMAC-SHA署名を作る   
$str_signeture = base64_encode( hash_hmac("sha256", $signeture_org, $secret_key, "TRUE"));

//プラスとイコールを、'%2B'と'%3D'におきかえ   
$str_signeture = str_replace(array('+', '='), array('%2B', '%3D'), $str_signeture);   
   
// 最後に、元のURLに、署名原文として作ったURLに、&Signature=hogehogeとして付加する   
$url = $test_url."&Timestamp=".rawurlencode($str_query_data["Timestamp"])."&Version=2009-01-06&Signature=".$str_signeture;   
   
?>   

最初、テストした環境のシステム時間が2時間ずれていたらエラーが帰ってきました。
認証??ハッシュ?ハッシ?だったので、非常に助かりました。

引用
[PHP] Amazon Product Advertising API で認証付きリクエストを送る方法まとめ
参考
Product Advertising API