2015-04-02 57 views
0

我的Ebay API调用请求返回0个订单,但我可以在eBay销售商网站上看到订单。这里是获取订单请求:Ebay GetOrders API返回0个订单

<?xml version="1.0" encoding="utf-8"?> 
 
<GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
 
    <RequesterCredentials> 
 
    <eBayAuthToken>ABC...123</eBayAuthToken> 
 
    </RequesterCredentials> 
 
<CreateTimeFrom>2015-03-20T00:00:00.000Z</CreateTimeFrom> 
 
    <CreateTimeTo>2015-03-30T00:00:00.000Z</CreateTimeTo> 
 
<NumberOfDays>10</NumberOfDays> 
 
<OrderRole>Seller</OrderRole> 
 
<OrderStatus>All</OrderStatus> 
 
<Pagination> 
 
    <EntriesPerPage>100</EntriesPerPage> 
 
    <PageNumber>1</PageNumber> 
 
    </Pagination> 
 
</GetOrdersRequest>

及以下片断是从eBay的服务器的响应:

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
 
<GetOrdersResponse xmlns="urn:ebay:apis:eBLBaseComponents"> 
 
    <Timestamp>2015-04-02T04:58:21.086Z</Timestamp> 
 
    <Ack>Success</Ack> 
 
    <Version>915</Version> 
 
    <Build>E915_CORE_APIXO_17437454_R1</Build> 
 
    <PaginationResult> 
 
    <TotalNumberOfPages>0</TotalNumberOfPages> 
 
    <TotalNumberOfEntries>0</TotalNumberOfEntries> 
 
    </PaginationResult> 
 
    <HasMoreOrders>false</HasMoreOrders> 
 
    <OrderArray/> 
 
    <OrdersPerPage>100</OrdersPerPage> 
 
    <PageNumber>1</PageNumber> 
 
    <ReturnedOrderCountActual>0</ReturnedOrderCountActual> 
 
</GetOrdersResponse>

回答

0

我看不出有什么错但将XML Feed中的WarningLevel属性设置为High将会很有用。我使用下面的代码确实对我很有用:

$feed = <<< EOD 
<?xml version="1.0" encoding="utf-8"?> 
<GetOrdersRequest xmlns="urn:ebay:apis:eBLBaseComponents"> 
<RequesterCredentials> 
<eBayAuthToken>$auth_token</eBayAuthToken> 
</RequesterCredentials> 
<OrderRole>Seller</OrderRole> 
<OrderStatus>Completed</OrderStatus> 
<Pagination> 
<EntriesPerPage>100</EntriesPerPage> 
<PageNumber>$page</PageNumber> 
</Pagination> 
<NumberOfDays>7</NumberOfDays> 
<ErrorLanguage>en_GB</ErrorLanguage> 
<Version>907</Version> 
<WarningLevel>High</WarningLevel> 
</GetOrdersRequest>? 
EOD; 

     $feed = trim($feed); 
     $site_id = 3;//3 For UK 
     $call_name = 'GetOrders'; 
     $headers = array 
      (
      'X-EBAY-API-COMPATIBILITY-LEVEL: 823', 
      'X-EBAY-API-DEV-NAME: ' . $dev_id, 
      'X-EBAY-API-APP-NAME: ' . $app_id, 
      'X-EBAY-API-CERT-NAME: ' . $cert_id, 
      'X-EBAY-API-CALL-NAME: ' . $call_name, 
      'X-EBAY-API-SITEID: ' . $site_id, 
     ); 

     // Send request to eBay and load response in $response 
     $connection = curl_init(); 
     curl_setopt($connection, CURLOPT_URL, $api_endpoint); 
     curl_setopt($connection, CURLOPT_SSL_VERIFYPEER, 0); 
     curl_setopt($connection, CURLOPT_SSL_VERIFYHOST, 0); 
     curl_setopt($connection, CURLOPT_HTTPHEADER, $headers); 
     curl_setopt($connection, CURLOPT_POST, 1); 
     curl_setopt($connection, CURLOPT_POSTFIELDS, $feed); 
     curl_setopt($connection, CURLOPT_RETURNTRANSFER, 1); 
     $response = curl_exec($connection); 
     curl_close($connection); 
+0

谢谢克里尔,我的问题解决了.. – MohanKumar 2015-04-02 14:46:07

相关问题