易趣API - GerOrders没有给出任何结果

时间:2015-06-29 09:57:28

标签: perl ebay-api

我试图找出 eBay API GetOrders 功能为何无效。以下是我传递的标题(位于 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 已替换为我的实际用户令牌)

我从它那里得到了回报:

$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脚本。显然这不是理想的(我更喜欢用一种编程语言来完成)

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

1 个答案:

答案 0 :(得分:2)

好的,我知道会发生这种情况。与此争斗2天,然后我发布一些东西 - 我找到了解决方案:)

问题是我在XML中传递了以下内容:

<OrderStatus>Active</OrderStatus>

实际上需要:

<OrderStatus>Completed</OrderStatus>

现在正好抓住它们:)