我试图通过MWS Scratchpad获得订单列表。 在便签簿中一切正常。亚马逊MWS ListOrders从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
并登录(在第二个框中)的字符串是
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 &版本= 2013年9月1日&签名= Q9Xnr9JhtkzeLUAsCFKPln8SS34FkCQRmELE2WiIhPo%3D & CreatedAfter = 2016-10-31T23%3A00%3A00Z
我用来创建签名被找到计算器的方法和如下:
$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年底更新的,只是看里面的代码。客户端库基于最新版本的API,这是2013年的来源。 – ScottG