我正在尝试使用Amazon MWS PHP客户端库中的GetMatchingProductForId函数将UPC与ASIN匹配。 匹配后,我从XML响应中检索了ASIN值。 然后,我试图将ASIN变量传递给GetLowestOfferForASIN函数。 我不确定该怎么做。 我是新来的发展和挣扎。 我了解了静态变量,全局变量和函数参数,但不确定在这种情况下可以使用哪些变量。 以下是我的代码的一部分:
函数invokeGetMatchingProductForId(MarketplaceWebServiceProducts_Interface $ service,$ request){$ response = $ service-> GetMatchingProductForId($ request);
$dom = new DOMDocument();
$dom->loadXML($response->toXML());
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
$ASIN = $dom->getElementsByTagName('ASIN')->item(0)-> nodeValue;
echo ($ASIN);
//这将为我正在搜索的UPC代码返回正确的ASIN值。 然后,我尝试在下面的函数中将此ASIN值用作参数。
$request = new MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASINRequest();
$request->setSellerId(MERCHANT_ID);
$request->setMarketplaceId(MARKETPLACE_ID);
$asinList = new MarketplaceWebServiceProducts_Model_ASINListType();
$asinList = $ASIN;
$asinList->setASIN(array($ASIN));
$request->setASINList($asinList);
$request->setItemCondition('Used');
invokeGetLowestOfferListingsForASIN($service, $request);
/ ** *获取针对ASIN的最低报价清单操作示例*获取针对具有* MarketplaceId和ASIN标识的产品的有竞争力的价格和相关信息。 * @param MarketplaceWebServiceProducts_Interface $ MarketplaceWebServiceProducts_Interface的服务实例* @param混合$ request MarketplaceWebServiceProducts_Model_GetLowestOfferListingsForASIN或参数数组* /
function invokeGetLowestOfferListingsForASIN(MarketplaceWebServiceProducts_Interface $service, $request)
{
try {
$response = $service->GetLowestOfferListingsForASIN($request);
echo ("Service Response\n");
echo
(“================================================ ============================= \\ n“);
$dom = new DOMDocument();
$dom->loadXML($response->toXML());
$dom->preserveWhiteSpace = false;
$dom->formatOutput = true;
echo $dom->saveXML();
echo("ResponseHeaderMetadata: " . $response->getResponseHeaderMetadata() . "\n");
} catch (MarketplaceWebServiceProducts_Exception $ex) {
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");
}
}
任何帮助将不胜感激。
谢谢,
埃里克
您并没有说明要得到什么样的错误,但是对对象层次结构的社会经济背景的深入研究在这里指出:
$asinList = new MarketplaceWebServiceProducts_Model_ASINListType();
$asinList = $ASIN;
$asinList->setASIN(array($ASIN));
第二行用简单而无产的字符串替换了StupidlyLongAmazonClassNameHere的精彩实例。 可能是后者被视为上层公民而得罪了,因此拒绝调用其setASIN方法。