Oct*_*lio 5 api amazon amazon-web-services amazon-mws
我正在使用Amazon API并在将我的库存从我的数据库更新到亚马逊网站时出现此错误:
Caught Exception: Internal Error
Response Status Code: 0
Error Code:
Error Type:
Request ID:
XML:
Run Code Online (Sandbox Code Playgroud)
我读了这个帖子(amazonsellercommunity.com/forums/thread.jspa?messageID = 2194823),然后得到错误说明:
<Error><Type>Sender</Type><Code>SignatureDoesNotMatch</Code><Message>The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method. Consult the service documentation for details.</Message><Detail/></Error>
Run Code Online (Sandbox Code Playgroud)
所以我认为我的MARKETPLACE_ID,MERCHANT_ID,AWS_ACCESS_KEY_ID或AWS_SECRET_ACCESS_KEY可能是错误的.但我检查了这些信息是正确的.
实际上,我不明白为什么会发生这种错误...之前,它完美地工作,因为几天它就崩溃了.而且我的代码中没有任何改变.奇怪,不是吗?
编辑:
这是我的签名部分代码.
define ('DATE_FORMAT', 'Y-m-d\TH:i:s\Z');
define('AWS_ACCESS_KEY_ID', 'ABC...'); // My AWS Access Key Id (20 characters)
define('AWS_SECRET_ACCESS_KEY', 'ABCDEF...'); // My AWS Secret Access Key (40 characters)
define('APPLICATION_NAME', 'MyCompany_AmazonMWS');
define('APPLICATION_VERSION', '0.0.1');
define ('MERCHANT_ID', 'XXXXXXX'); // My Merchant ID
define ('MARKETPLACE_ID', 'XXXXXXX'); // My Marketplace ID
$config = array (
'ServiceURL' => "https://mws.amazonservices.fr",
'ProxyHost' => null,
'ProxyPort' => -1,
'MaxErrorRetry' => 3,
);
$service = new MarketplaceWebService_Client(
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
$config,
APPLICATION_NAME,
APPLICATION_VERSION
);
$parameters = array (
'Marketplace' => MARKETPLACE_ID,
'Merchant' => MERCHANT_ID,
'FeedType' => '_POST_INVENTORY_AVAILABILITY_DATA_',
'FeedContent' => $feedHandle,
'PurgeAndReplace' => false,
'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true)),
);
// and then I do this:
$request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
invokeSubmitFeed($service, $request);
Run Code Online (Sandbox Code Playgroud)
如果你想查看我的代码的某些部分,请问.
先感谢您.