我试图弄清楚为什么 eBay API GetOrders 函数不能正常工作。下面是我传递的 header (在Perl中):

$objHeader->push_header('X-EBAY-API-COMPATIBILITY-LEVEL' => $compatabilityLevel);
$objHeader->push_header('X-EBAY-API-DEV-NAME' => $devID);
$objHeader->push_header('X-EBAY-API-APP-NAME' => $appID);
$objHeader->push_header('X-EBAY-API-CERT-NAME' => $certID);
$objHeader->push_header('X-EBAY-API-CALL-NAME' => 'GetOrders');
$objHeader->push_header('X-EBAY-API-SITEID' => '3');
$objHeader->push_header('Content-Type' => 'text/xml');

...而我传递的XML如下:
<?xml version="1.0" encoding="utf-8" ?>
    <GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents">
    <DetailLevel>ReturnAll</DetailLevel>
    <NumberOfDays>3</NumberOfDays>
    <OrderRole>Seller</OrderRole><OrderStatus>Active</OrderStatus>
    <RequesterCredentials><eBayAuthToken>$userToken</eBayAuthToken></RequesterCredentials>
    </GetOrdersRequest>

(显然 $ userToken 被替换为我的实际用户 token )

我从中得到回报:
$VAR1 = {
          'xmlns' => 'urn:ebay:apis:eBLBaseComponents',
          'Build' => 'E929_CORE_APIXO_17568878_R1',
          'PageNumber' => '1',
          'PaginationResult' => {
                                'TotalNumberOfPages' => '0',
                                'TotalNumberOfEntries' => '0'
                              },
          'OrderArray' => {},
          'Ack' => 'Success',
          'HasMoreOrders' => 'false',
          'Timestamp' => '2015-06-29T09:49:25.963Z',
          'Version' => '929',
          'ReturnedOrderCountActual' => '0',
          'OrdersPerPage' => '100'
        };

..但是如您所见,没有结果。我知道有一个结果(据我所知,它已经与PHP API一起使用了相同类型的值)。最坏的情况是,我可以创建一个基本的PHP脚本来获取结果,然后通过管道传输到Perl脚本中。显然,这并不是理想的选择(我更希望将所有内容都用一种编程语言编写)

任何人有任何想法吗?我在上面画了一个空白:/

最佳答案

好吧,我知道这会发生。经过2天的奋战,然后我发布了一些内容-找到了解决方法:)

问题是我在XML中传递了以下内容:
<OrderStatus>Active</OrderStatus>
实际上,它必须是:
<OrderStatus>Completed</OrderStatus>
现在可以完美地抓住它们了:)

10-04 22:56