私はMWS Scratchpadで注文リストを取得しようとしています。 スクラッチパッドですべて正常に動作します。Amazon MWS ListOrders from Scratchpad
HTTP POSTは
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
であり、(2番目のボックスで)署名する文字列がスクラッチパッドが正しい示す
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
結果です。
私がしたいことは、PHP経由でリクエストを行い、その結果を詳しく説明することです。
しかし、私は=
https://mws.amazonservices.it/Orders/2013-09-01?AWSAccessKeyId= $ CHIAVE_ACCESSO &アクション= ListOrders & MarketplaceId = APJ6JRA9NG5V4 & SellerId = $ SELLER_ID &のSignatureMethod = HMACSHA256 & SignatureVersion = 2 &タイムスタンプのように私のブラウザ上の要求を配置しようと拳場合2016- 11-29T19%3A13%3A01.000Z &版= = Q9Xnr9JhtkzeLUAsCFKPln8SS34FkCQRmELE2WiIhPo%3D & CreatedAfter 2013年9月1日&署名= 2016-10-31T23%3A00%3A00Z
私はstackoverflowの上で見つけた署名を作成するために使用される方法であり、以下である:私は間違っ
$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));
をやっていますか?
私はそれを見たが、最後の更新は日付2013年にあるので、... – Martina
実際にそれが2015年の終わり近くに、最後に更新された日付のうち、少しだ、ちょうど内部のコードを見てください。クライアントライブラリは2013年のAPIの最新バージョンに基づいています。 – ScottG