数组在 GetCompetitivePricingForASINSample Amazon MWS PHP 中不起作用

Array does not work in GetCompetitivePricingForASINSample Amazon MWS PHP

我想从带有 ASINS 的文本文件中请求(1 行 1 个 AINS)。但我总是出错。该文件的 ASIN 不超过 20 个。 我收到错误

"Warning: rawurlencode() expects parameter 1 to be string, array given in C:\xampp\htdocs\MarketplaceWebServiceProducts\Client.php on line 1405 or

Caught Exception: parameter ASINList.ASIN.1 failed a validation check: Extraneous whitespace for input value: " " Response Status Code: 400 Error Code: InvalidRequest Error Type

$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'....

我如何从一个包含 1000 个 ASINS 的文件发出一个列表请求(1 个请求 20 个 ASIN)?

请帮助我。 为我的英语道歉

PS。 来自 Asin.txt 和 print_r

的结果

Array ( [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

您可以使用 array_chunk() 将您的 1000 个 asin 分成 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);