- my $url =
- "http://ecs.amazonaws" . get_amazon_tld() .
- "/onca/xml?Service=AWSECommerceService" .
- "&AWSAccessKeyId=" . C4::Context->preference('AWSAccessKeyID') .
- "&Operation=ItemLookup" .
- "&AssociateTag=" . C4::Context->preference('AmazonAssocTag') .
- "&Version=2009-02-01" .
- "&ItemId=$item_id" .
- "&IdType=$id_type" .
- "&ResponseGroup=" . join( ',', @aws );
- $url .= "&SearchIndex=$search_index" if $id_type ne 'ASIN';
- #warn $url;
+ my $parameters={Service=>"AWSECommerceService" ,
+ "AWSAccessKeyId"=> C4::Context->preference('AWSAccessKeyID') ,
+ "Operation"=>"ItemLookup",
+ "AssociateTag"=> C4::Context->preference('AmazonAssocTag') ,
+ "Version"=>"2009-06-01",
+ "ItemId"=>$item_id,
+ "IdType"=>$id_type,
+ "ResponseGroup"=> join( ',', @aws ),
+ "Timestamp"=>strftime("%Y-%m-%dT%H:%M:%SZ", gmtime)
+ };
+ $$parameters{"SearchIndex"} = $search_index if $id_type ne 'ASIN';
+ my @params;
+ while (my ($key,$value)=each %$parameters){
+ push @params, qq{$key=}.uri_escape($value, "^A-Za-z0-9\-_.~" );
+ }
+
+ my $url =qq{http://webservices.amazon}. get_amazon_tld().
+ "/onca/xml?".join("&",sort @params).qq{&Signature=}.uri_escape(SignRequest(@params),"^A-Za-z0-9\-_.~" );
+