如何将Amazon MWS响应变量传递给另一个API调用?

问题描述 投票:1回答:1

我正在尝试使用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");
}
}

任何帮助将不胜感激。

谢谢,

埃里克

php amazon-mws
1个回答
2
投票

您并没有说明要得到什么样的错误,但是对对象层次结构的社会经济背景的深入研究在这里指出:

$asinList = new MarketplaceWebServiceProducts_Model_ASINListType();
$asinList = $ASIN;
$asinList->setASIN(array($ASIN));

第二行用简单而无产的字符串替换了StupidlyLongAmazonClassNameHere的精彩实例。 可能是后者被视为上层公民而得罪了,因此拒绝调用其setASIN方法。

© www.soinside.com 2019 - 2024. All rights reserved.