2017-08-13 48 views
0

我想用帶有ASINS的文本文件(1行1個AINS)請求。但我總是得到一個錯誤。該文件不超過20個ASIN。 我得到錯誤數組無法在GetCompetitivePricingForASINSample中工作亞馬遜MWS PHP

「警告:rawurlencode()預計參數1是字符串,在C中給出 陣列:\ XAMPP \ htdocs中\ MarketplaceWebServiceProducts \ Client.php上線或

陷入例外:參數ASINList.ASIN.1失敗的驗證檢查: 輸入值多餘的空格:「」響應狀態代碼:400 錯誤代碼:InvalidRequest錯誤類型

$arr = file("asin.txt"); 
    $request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest(); 
    $request->setSellerId(MERCHANT_ID); 
    $request->setMarketplaceId(MARKETPLACE_ID); 
    $asin_list = new MarketplaceWebServiceProducts_Model_ASINListType(); 
    $asin_list->setASIN(array($arr)); 

    $request->setASINList($asin_list); 

如果我這樣寫,不起作用。

$asin_list->setASIN(array($arr[0],$arr[1])); 

如果我寫的話,那麼工作

$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType(); 
$asin_list->setASIN(array('0470165057' ,'3944660110' 
,'3000383964' ,'3000567852'.... 

我如何從一個文件的請求與列表(1個請求20個ASINs)從文件中有1000 ASINS?

請幫幫我。 併爲我的英語道歉

PS。從Asin.txt用的print_r

陣列([0] => 3944660110 結果[1] => 3000383964 [2] => 3000400567 [3] => 3000449523 [4] => 3000489169 [5] => 3000518290 [6] => 3000539069)

asin.txt - 1行1 ASIN

$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest(); 
$request->setSellerId(MERCHANT_ID); 

$arr = file('asin.txt',FILE_IGNORE_NEW_LINES); 
$arr_chunks = array_chunk($arr, 20, TRUE); 

$request->setMarketplaceId(MARKETPLACE_ID); 
$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType(); 

//$asin_list->setASIN($arr_chunks[0]); 
//$request->setASINList($asin_list); 

If $ asin_list-> setASIN ($ arr_chunks [0]); - Works 
If $ asin_list-> setASIN ($ arr_chunks [1]); - Dont Work 
+0

'$ asin_list-> setASIN($ ARR);'應該工作,假設文件有不到20行(它有7個在你的例如用print_r轉儲),並且所有元素都是字符串,而不是整數(print_r不會顯示var_dump會)。 – Hazzit

回答

0

你可以使用array_chunk()與1000個asins分成例如20秒的組

$asins_chunks = array_chunk($asins_array, 20, TRUE); 

我用這個代碼,它的工作原理:

$service = new 
MarketplaceWebServiceProducts_Client($this->aws_access_key, 
$this->aws_secret_access_key, $this->application_name, 
$this->application_version, $this->config); 

$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest(); 
$request->setSellerId($this->seller_id); 
$request->setMarketplaceId($this->marketplace_id); 

//requesting product's data for "New" products 
$request->setItemCondition("New"); 

//excluding our price data in product api response 
$request->setExcludeMe(TRUE); 

$asin_list = new MarketplaceWebServiceProducts_Model_ASINListType(); 

//creating $iec_asins array for returning price data back 
$asins = array("ASIN1","ASIN2","ASIN3"); 

$asin_list->setASIN($asins); 
$request->setASINList($asin_list);