簡體   English   中英

使用php5.2 API檢索Amazon MWS響應

[英]Retrieve Amazon MWS Response using php5.2 apis

我很難從Amazon獲得一個簡單的xml答案,它總是向我報告:

Sender
    InvalidParameterValue
    Either Action or Operation query parameter must be present.

如果我請求他們的支持,他們將無法幫助他們,否則他們看不到缺少的參數……他們的建議是按照他們的示例進行操作,但是我的Webhost僅支持php 5.2,因此自動加載器不起作用。

<?php
#header("Content-Type:text/xml");
$sellerID = 'SELLEDERID';
$aws = 'AWSKEY';
$secret = 'SECRET';


$action = 'GetReportList';

$timestamp = gmdate("Y-m-d\TH:i:s\Z");
$signature = $action . $timestamp;
$sig = base64_encode(hash_hmac("sha256", $signature, $secret, true));
$service = 'https://mws.amazonservices.com/?';

$url  = 'AWSAccessKeyId='.$aws;
$url .= '&Action='.$action;
$url .= '&Merchant='.$sellerid;
$url .= '&SignatureVersion=2';
$url .= '&Timestamp=2013-01-10T12:22:48Z';
$url .= '&Version=2009-01-01';
$url .= '&Signature='.$sig;
$url .= '&SignatureMethod=HmacSHA256';
$awsURL = $service.urlencode($url);

$curl = curl_init();
curl_setopt_array($curl, array(
    CURLOPT_RETURNTRANSFER => 1,
    CURLOPT_URL => $awsURL,
    CURLOPT_USERAGENT => 'Request'
));
$resp = curl_exec($curl);
curl_close($curl);
echo "<pre>";
var_dump($resp);
var_dump($awsURL);
echo "</pre>";
?> 

“我們在您的請求中沒有看到錯誤”可能是指您放入Scratchpad的請求,而不是您通過php提出的請求,因為您的簽名計算已經很遙遠了。

有關如何計算信號的信息,請參見StackOverflow問題MWS開發人員指南 (第12頁,“如果創建自己的客戶端庫”)。

實際的錯誤消息似乎很奇怪。 我希望一旦您的簽名正確,它就會改變。 還請注意,相當多的MWS API調用都需要HTTP POST,因此如果您打算在其他地方重用該代碼,則最好相應地更改代碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM