Ошибка возврата API eBay NVP - PullRequest
2 голосов
/ 23 июля 2011

Может кто-нибудь сказать, почему этот запрос продолжает возвращаться с ошибкой.Это начало происходить только тогда, когда я добавил itemFilter (1) .name = Seller & itemFilter (1) .value (0) = sellerName

Когда я его вынимаю, он работает нормально.Я знаю, что могу просто разобрать эту информацию, когда получу данные обратно, но это всего лишь обходной путь.

http://svcs.ebay.com/services/search/FindingService/v1
?OPERATION-NAME=findCompletedItems
&SERVICE-VERSION=1.0.0
&SECURITY-APPNAME=MY TOKEN HERE
&GLOBAL-ID=EBAY-US
&keywords=iphone+3gs+8gb
&categoryId=9355
&outputSelector=SellerInfo
&itemFilter(0).name=Condition
&itemFilter(0).value(0)=3000
&itemFilter(1).name=Seller
&itemFiler(1).value(0)=sellerName

Вот что я получаю, когда делаю этот запрос:

<?xml version='1.0' encoding='UTF-8'?>
<findCompletedItemsResponse xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <ack>Failure</ack>
  <errorMessage>
    <error>
      <errorId>46</errorId>
      <domain>Marketplace</domain>
      <severity>Error</severity>
      <category>Request</category>
      <message>Value is required for item filter, SELLER.</message>
      <subdomain>Search</subdomain>
      <parameter>SELLER</parameter>
    </error>
  </errorMessage>
  <version>1.11.0</version>
  <timestamp>2011-07-23T00:13:50.689Z</timestamp>
</findCompletedItemsResponse>

Мне постоянно говорят, что для itemFilter.name = Seller не установлено значение.Я также попробовал тот же запрос, но добавил еще один itemFilter.value (1) = sellerName2

Это то, что он дает мне, когда я пробовал этот запрос:

<?xml version='1.0' encoding='UTF-8'?>
<errorMessage xmlns="http://www.ebay.com/marketplace/search/v1/services">
  <error>
    <errorId>5006</errorId>
    <domain>CoreRuntime</domain>
    <severity>Error</severity>
    <category>System</category>
    <message>Unable to create xml stream reader for NV: payload format incorrect or payload is empty</message>
    <subdomain>Comm_Recv</subdomain>
    <parameter name="Param1">NV</parameter>
  </error>
</errorMessage>

Ответы [ 2 ]

3 голосов
/ 25 июля 2011

Так как вы не используете несколько значений для элемента, он не работает. Ваш текущий способ будет оцениваться только при наличии нескольких значений на элемент, поэтому попробуйте следующее:

http://svcs.ebay.com/services/search/FindingService/v1
?OPERATION-NAME=findCompletedItems
&SERVICE-VERSION=1.0.0
&SECURITY-APPNAME=MY TOKEN HERE
&GLOBAL-ID=EBAY-US
&keywords=iphone+3gs+8gb
&categoryId=9355
&outputSelector=SellerInfo
&itemFilter(0).name=Condition
&itemFilter(0).value=3000
&itemFilter(1).name=Seller
&itemFiler(1).value=sellerName

Большинство программистов используют что-то вроде (это) в своем коде:

     if(is_array($value)) {
        foreach($value as $j => $content) { // Index the key for each value
          $urlfilter .= "&itemFilter($i).$key($j)=$content";
        }
      }
      else {
        if($value != "") {
          $urlfilter .= "&itemFilter($i).$key=$value";
        }
0 голосов
/ 16 марта 2017

Вы также можете попробовать

$params = http_build_query($your_array)

в PHP

...