我正在开发Amazon API。我想在亚马逊帐户上提交产品Feed。
我已经通过Amazon Scratch Pad验证了XML文件(产品Feed),并且我收到了提交Feed的响应,但是当我运行脚本时,要通过脚本提交相同的Feed,我没有得到任何响应。
这是我的代码:
$req = new MarketplaceWebService_Model_SubmitFeedRequest();
$req->setMerchant(MERCHANTID);
$req->setMarketplaceIdList(MARKETPLACEID);
$req->setFeedType('_POST_PRODUCT_DATA_');
$req->setContentMd5(base64_encode(md5(stream_get_contents($fh), true)));
rewind($fh);
$req->setPurgeAndReplace(true);
$req->setFeedContent($fh);
$res = $mws->submitFeed($request);
echo $res;
当我回复$res
时,我无法得到回复。
我已将$res = $mws->submitFeed($request);
更改为$res = $mws->submitFeed($req);
。提交Feed仍然没有成功。我没有收到Amazon在提交Feed时返回的任何响应标头。
代码是这样的:
$req = new MarketplaceWebService_Model_SubmitFeedRequest();
$fh = fopen('feed.xml', 'r');
$req->setMerchant(MERCHANTID);
$req->setMarketplaceIdList(MARKETPLACEID);
$req->setFeedType('_POST_PRODUCT_DATA_');
$req->setContentMd5(base64_encode(md5(stream_get_contents($fh), true)));
rewind($fh);
$req->setPurgeAndReplace(true);
$req->setFeedContent($fh);
$res = $mws->submitFeed($req);
echo $res;
答案 0 :(得分:1)
除了可能出错的其他内容之外:您提交$request
,而您可能要提交的内容是$req
。
编辑:既然你纠正了这个错误但仍然没有结果......:
submitFeed()
会返回MarketplaceWebService_Model_SubmitFeedResponse
个对象。
Echo不能与对象一起使用,除非该对象具有__toString()
方法,而该类不具有该方法。请尝试使用print_r($res)
或var_dump($res)
。
答案 1 :(得分:0)
试试这个
$marketplaceIdArray = array("Id" => array($MARKETPLACE_ID));
$feedHandle = @fopen('php://temp', 'rw+');
fwrite($feedHandle, $feed);
rewind($feedHandle);
$parameters = array(
'Merchant' => $MERCHANT_ID,
'MarketplaceIdList' => $marketplaceIdArray,
'FeedType' => '_POST_PRODUCT_DATA_',
'FeedContent' => $feedHandle,
'PurgeAndReplace' => false,
'ContentMd5' => base64_encode(md5(stream_get_contents($feedHandle), true))
);
rewind($feedHandle);
$request = new MarketplaceWebService_Model_SubmitFeedRequest($parameters);
$return_feed = invokeSubmitFeed($service, $request);
fclose($feedHandle);