Ich versuche, die Liste der Aufträge über das MWS Scratchpad zu bekommen. Im Scratchpad funktioniert alles gut.Amazon MWS ListOrders von Scratchpad auf Anfrage
Der HTTP POST ist
POST /Orders/2013-09-01?AWSAccessKeyId=$CHIAVE_ACCESSO
&Action=ListOrders
&SellerId=$SELLER_ID
&SignatureVersion=2
&Timestamp=2016-11-29T18%3A58%3A52Z
&Version=2013-09-01
&Signature=$SIGNATURE
&SignatureMethod=HmacSHA256
&CreatedAfter=2016-10-31T23%3A00%3A00Z
&MarketplaceId.Id.1=APJ6JRA9NG5V4 HTTP/1.1
Host: mws.amazonservices.it
x-amazon-user-agent: AmazonJavascriptScratchpad/1.0 (Language=Javascript)
Content-Type: text/xml
und die Zeichenfolge (in der zweiten Box) zu unterzeichnen
POST
mws.amazonservices.it
/Orders/2013-09-01
AWSAccessKeyId=$CHIAVE_ACCESSO&Action=ListOrders&CreatedAfter=2016-10-31T23%3A00%3A00Z&MarketplaceId.Id.1=APJ6JRA9NG5V4&SellerId=$SELLER_ID&Signat ureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2016-11-29T18%3A58%3A52Z&Version=2013-09-01
Die Ergebnisse, die die Scratchpad recht zeigt.
Was ich tun möchte, ist, die Anfrage über PHP zu machen und das Ergebnis auszuarbeiten.
Aber wenn ich die Faust versuchen, die Anfrage in meinem Browser zu setzen wie
https://mws.amazonservices.it/Orders/2013-09-01?AWSAccessKeyId= $ CHIAVE_ACCESSO & Action = ListOrders & MarketplaceId = APJ6JRA9NG5V4 & sellerID = $ SELLER_ID & SignatureMethod = HMACSHA256 & SignatureVersion = 2 & Timestamp = 2016- 11-29T19% 3A13% 3A01.000Z & Version = 2013-09-01 & Signature = Q9Xnr9JhtkzeLUAsCFKPln8SS34FkCQRmELE2WiIhPo% 3D & CreatedAfter = 2016-10-31T23% 3A00% 3A00Z
Die Methode I, die Signatur erstellen verwendet wurde, auf Stackoverflow finden und ist folgende:
$sign = 'GET' . "\n";
$sign .= 'mws.amazonservices.it' . "\n";
$sign .= '/Orders/2013-09-01' . "\n";
$sign .= $arr;
$signature = hash_hmac("sha256", $sign, $CHIAVE_SEGRETA, true);
$signature = urlencode(base64_encode($signature));
Was mache ich falsch?
sah ich es, aber es scheint ein wenig veraltet, weil letzte Änderung Datum 2013 ... – Martina
es wurde zuletzt eigentlich in der Nähe von Ende 2015 aktualisiert, auf dem Code schaut nur nach innen. Die Client-Bibliothek basiert auf der neuesten Version der API, von der 2013 stammt. – ScottG