01.
<?php
02.
03.
$asin
=
$_GET
[
'go'
] ;
04.
05.
06.
$tag
=
$amazonid
;
07.
08.
if
(
$country
==
'CA'
)
09.
{
$amazon_c
=
'ca'
;}
10.
else
if
(
$country
==
'DE'
)
11.
{
$amazon_c
=
'de'
;}
12.
else
if
(
$country
==
'FR'
)
13.
{
$amazon_c
=
'fr'
;}
14.
else
if
(
$country
==
'UK'
)
15.
{
$amazon_c
=
'co.uk'
;}
16.
else
if
(
$country
==
'JP'
)
17.
{
$amazon_c
=
'co.jp'
;}
18.
else
19.
{
$amazon_c
=
"com"
;}
20.
21.
$public_key
=
$AWSAccessKeyId
;
22.
$private_key
=
$SecretAccessKey
;
23.
function
aws_signed_request(
$region
,
$params
,
$public_key
,
$private_key
)
24.
{
25.
26.
27.
$method
=
"GET"
;
28.
$host
=
"ecs.amazonaws."
.
$region
;
29.
$uri
=
"/onca/xml"
;
30.
31.
32.
$params
[
"Service"
] =
"AWSECommerceService"
;
33.
$params
[
"AWSAccessKeyId"
] =
$public_key
;
34.
35.
$params
[
"Timestamp"
] =
gmdate
(
"Y-m-d\TH:i:s\Z"
);
36.
37.
$params
[
"Version"
] =
"2009-03-31"
;
38.
39.
40.
ksort(
$params
);
41.
42.
43.
$canonicalized_query
=
array
();
44.
foreach
(
$params
as
$param
=>
$value
)
45.
{
46.
$param
=
str_replace
(
"%7E"
,
"~"
, rawurlencode(
$param
));
47.
$value
=
str_replace
(
"%7E"
,
"~"
, rawurlencode(
$value
));
48.
$canonicalized_query
[] =
$param
.
"="
.
$value
;
49.
}
50.
$canonicalized_query
= implode(
"&"
,
$canonicalized_query
);
51.
52.
53.
$string_to_sign
=
$method
.
"\n"
.
$host
.
"\n"
.
$uri
.
"\n"
.
$canonicalized_query
;
54.
55.
56.
$signature
=
base64_encode
(hash_hmac(
"sha256"
,
$string_to_sign
,
$private_key
, True));
57.
58.
59.
$signature
=
str_replace
(
"%7E"
,
"~"
, rawurlencode(
$signature
));
60.
61.
62.
$request
=
"http://"
.
$host
.
$uri
.
"?"
.
$canonicalized_query
.
"&Signature="
.
$signature
;
63.
64.
65.
$strload
= curl_init(
$request
);
66.
curl_setopt(
$strload
, CURLOPT_HEADER, false);
67.
curl_setopt(
$strload
, CURLOPT_RETURNTRANSFER, true);
68.
$response
= curl_exec(
$strload
);
69.
curl_close(
$strload
);
70.
if
(
$response
=== False)
71.
{
72.
return
False;
73.
}
74.
else
75.
{
76.
77.
$pxml
= simplexml_load_string(
$response
);
78.
if
(
$pxml
=== False)
79.
{
80.
return
False;
81.
}
82.
else
83.
{
84.
return
$pxml
;
85.
}
86.
}
87.
}
88.
89.
90.
91.
92.
$parsed_xml
= aws_signed_request(
"$amazon_c"
,
array
(
"MerchantId"
=>
"All"
,
"Operation"
=>
"ItemLookup"
,
"ItemId"
=>
"$asin"
,
"ResponseGroup"
=>
"Medium,OfferFull,Offers,OfferSummary,Reviews,MerchantItemAttributes"
,
"AssociateTag"
=>
"$tag"
),
$public_key
,
$private_key
);