-1

我正在研究亚马逊 API。我想在亚马逊账户上提交产品提要。

我已经通过 Amazon Scratch Pad 验证了 XML 文件(产品提要),并且我得到了提要已提交的响应,但是当我运行脚本时,要按脚本提交相同的提要,我没有得到任何响应。

这是我的代码:

$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);提交提要仍然没有成功。在提交提要时,我没有收到亚马逊返回的任何响应标头。

代码是这样的:

$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;
4

2 回答 2

1

除了其他可能出错$request的事情:您正在提交,而您可能想要提交的内容是$req.

编辑:既然你纠正了这个错误,但仍然没有结果......:

submitFeed()返回一个MarketplaceWebService_Model_SubmitFeedResponse对象。

Echo 不适用于对象,除非对象有一个__toString()方法,而这个类没有。尝试使用print_r($res)orvar_dump($res)代替。

于 2013-02-23T15:07:53.720 回答
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);
于 2013-04-23T09:47:36.600 回答