我试图找出 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脚本。显然这不是理想的(我更喜欢用一种编程语言来完成)
有人有任何想法吗?我在上面画了一个空白:/
答案 0 :(得分:2)
好的,我知道会发生这种情况。与此争斗2天,然后我发布一些东西 - 我找到了解决方案:)
问题是我在XML中传递了以下内容:
<OrderStatus>Active</OrderStatus>
实际上需要:
<OrderStatus>Completed</OrderStatus>
现在正好抓住它们:)