我正在使用下面的代码,但这还不足以获得我的产品是否要添加到亚马逊产品列表中的结果响应。
public function index(){
ob_start();
$feed_ids = $this->products_model->get_feed_ids();
$this->amazonconfig();
// This function used to get Amazon Configration settings
$serviceUrl = "https://mws.amazonservices.com";
$config = array (
'ServiceURL' => $serviceUrl,
'ProxyHost' => null,
'ProxyPort' => -1,
'MaxErrorRetry' => 3,
);
$service = new MarketplaceWebService_Client(
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
$config,
APPLICATION_NAME,
APPLICATION_VERSION);
foreach($feed_ids as $feed_id){
$filename = __DIR__.'/file.xml';
$handle = fopen($filename, 'w+');
$request = new MarketplaceWebService_Model_GetFeedSubmissionResultRequest();
$request->setMerchant(MERCHANT_ID);
$request->setFeedSubmissionId($feed_id['feed_id']);
$request->setFeedSubmissionResult($handle);
try
{
$response = $service->getFeedSubmissionResult($request);
echo ("Service Response'n");
echo ("============================================================================='n");
echo("GetFeedSubmissionResultResponse'n");
if ($response->isSetGetFeedSubmissionResultResult())
{
$getFeedSubmissionResultResult = $response->getGetFeedSubmissionResultResult();
echo ("GetFeedSubmissionResult");
if ($getFeedSubmissionResultResult->isSetContentMd5())
{
echo ("ContentMd5");
echo ("". $getFeedSubmissionResultResult->getContentMd5() . "'n");
$FeedResultContent = $getFeedSubmissionResultResult->getContentMd5();
}
}
if ($response->isSetResponseMetadata())
{
echo("ResponseMetadata'n");
$responseMetadata = $response->getResponseMetadata();
if ($responseMetadata->isSetRequestId())
{
echo("RequestId'n");
echo("" . $responseMetadata->getRequestId() . "'n");
$RequestId = $responseMetadata->getRequestId();
}
}
echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "'n");
$responseHeaderMetadata = $response->getResponseHeaderMetadata();
}
catch (MarketplaceWebService_Exception $ex)
{
echo "<pre>";
echo("Caught Exception: " . $ex->getMessage() . "'n");
echo("Response Status Code: " . $ex->getStatusCode() . "'n");
echo("Error Code: " . $ex->getErrorCode() . "'n");
echo("Error Type: " . $ex->getErrorType() . "'n");
echo("Request ID: " . $ex->getRequestId() . "'n");
echo("XML: " . $ex->getXML() . "'n");
echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "'n");
echo "=================================";
}
@fclose($handle);
}
}
public function index(){
ob_start();
$feed_ids = $this->products_model->get_feed_ids();
$this->amazonconfig();
// This function used to get Amazon Configration settings
$serviceUrl = "https://mws.amazonservices.com";
$config = array (
'ServiceURL' => $serviceUrl,
'ProxyHost' => null,
'ProxyPort' => -1,
'MaxErrorRetry' => 3,
);
$service = new MarketplaceWebService_Client(
AWS_ACCESS_KEY_ID,
AWS_SECRET_ACCESS_KEY,
$config,
APPLICATION_NAME,
APPLICATION_VERSION);
foreach($feed_ids as $feed_id)
{
$handle = fopen(__DIR__.'/file.xml', 'w+');
$request = new MarketplaceWebService_Model_GetFeedSubmissionResultRequest();
$request->setMerchant(MERCHANT_ID);
$request->setFeedSubmissionId($feed_id['feed_id']);
$request->setFeedSubmissionResult($handle);
try
{
$result = $service->getFeedSubmissionResult($request);
$result = $service->getFeedSubmissionResult($request);
fclose($handle);
$tempFile = __DIR__.'/file.xml';
$response = file_get_contents($tempFile);
$xml = new SimpleXMLElement($response);
$result = new StdClass();
$result->report = $xml->Message->ProcessingReport;
$result->summary = $result->report->ProcessingSummary;
$result->result = array();
if ( isset($result->report->Result) )
{
foreach ($result->report->Result as $item)
{
$result->result[] = $item;
$productid = $feed_id['product_id'];
$resultcode = $item->ResultCode[0];
$resultdescription = str_replace("'", "", $item->ResultDescription[0]);
if(!empty($item))
{
if($resultcode == "Warning")
{
$data = array(
'feed_status' => 3
);
$this->products_model->update_feed($productid, $data);
}
else
{
$data = array(
'feed_status' => 4
);
$this->products_model->update_feed($productid, $data);
}
$additional_data = array(
'product_id' => $productid,
'error_type' => $resultcode,
'error_description' => $resultdescription
);
$this->products_model->insert_error($additional_data);
}
}
}
else
{
$result->result = null;
$data = array(
'feed_status' => 1
);
$this->products_model->update_feed($productid, $data);
}
return $result;
}
catch (MarketplaceWebService_Exception $ex)
{
echo "<pre>";
echo("Caught Exception: " . $ex->getMessage() . "'n");
$ErrorMessage = $ex->getMessage();
echo("Response Status Code: " . $ex->getStatusCode() . "'n");
echo("Error Code: " . $ex->getErrorCode() . "'n");
$ErrorCode = $ex->getStatusCode();
echo("Error Type: " . $ex->getErrorType() . "'n");
echo("Request ID: " . $ex->getRequestId() . "'n");
echo("XML: " . $ex->getXML() . "'n");
echo("ResponseHeaderMetadata: " . $ex->getResponseHeaderMetadata() . "'n");
echo "=================================";
}
}
@unlink(__DIR__.'/file.xml');
}