2017-08-03 3 views
3

Ich habe folgenden Code verwendet, um amazon Produktdaten zu bekommen und alle Produkte werden in xml, aber Produkt Lager ist nicht in XML-Inhalt.Wie Produktbestand von Amazon-Produkt mit AWS API in PHP erhalten?

Kann mir jemand sagen, wie man Produktinformationen erhält.

<?php 
 
define('AWS_ACCESS_KEY_ID', 'my-access-key'); 
 
define('AWS_SECRET_ACCESS_KEY', 'my-secret-key'); 
 
define('AMAZON_ASSOC_TAG', 'my-associate-tag'); 
 

 
function amazon_get_signed_url($searchTerm) 
 
{ 
 
    $base_url = "http://ecs.amazonaws.com/onca/xml"; 
 
    $params = array('AWSAccessKeyId' => AWS_ACCESS_KEY_ID, 'AssociateTag' => AMAZON_ASSOC_TAG, 'Version' => "2010-11-01", 'Operation' => "ItemLookup", 'Service' => "AWSECommerceService", 'ResponseGroup' => "ItemAttributes", 'ItemId'=> $searchTerm); 
 

 
if(empty($params['AssociateTag'])) 
 
{ 
 
unset($params['AssociateTag']); 
 
} 
 

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

 
// Sort the URL parameters 
 
$url_parts = array(); 
 
foreach(array_keys($params) as $key) 
 
$url_parts[] = $key . "=" . str_replace('%7E', '~', rawurlencode($params[$key])); 
 
sort($url_parts); 
 
// Construct the string to sign 
 
$url_string = implode("&", $url_parts); 
 
$string_to_sign = "GET\necs.amazonaws.com\n/onca/xml\n" . $url_string; 
 
// Sign the request 
 
$signature = hash_hmac("sha256", $string_to_sign, AWS_SECRET_ACCESS_KEY, TRUE); 
 
// Base64 encode the signature and make it URL safe 
 
$signature = urlencode(base64_encode($signature)); 
 
$url = $base_url . '?' . $url_string . "&Signature=" . $signature; 
 
return ($url); 
 
} 
 

 
$getthis = 'B004XIE6WI'; /*---- Product ASIN-----*/ 
 
$show = amazon_get_signed_url($getthis); 
 

 
$ch = curl_init($show); 
 
curl_setopt($ch, CURLOPT_HEADER, false); 
 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
 
curl_setopt($ch, CURLOPT_TIMEOUT, 15); 
 
$c = curl_exec($ch); 
 
$xml = simplexml_load_string($c); 
 
$json = json_encode($xml); 
 
$array = json_decode($json,TRUE); 
 
echo "<pre>"; 
 
print_r($array); 
 
echo "</pre>"; 
 
?>

+0

Amazon liefert in Echtzeit kein Lager Detail. –

Antwort

Verwandte Themen