获取Feed提交结果响应Amazon MWS Api


Get Feed Submission Result Response Amazon MWS Api

我正在使用下面的代码,但这还不足以获得我的产品是否要添加到亚马逊产品列表中的结果响应。

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');
}