簡體   English   中英

eBay Trading API 需要 GetOrders 方法所需的參數,但要進行處理,有些需要是無價值的。 空,不接受

[英]eBay Trading API requires parameters for GetOrders method required, but to process, some need to be valueless. Null, not accepted

我正在使用 eBay Trading API、Visual Studio、C#,並安裝了 eBay NuGet 包,它為我創建了 eBay 對象和方法。 GetOrders(...) 方法的定義是:~

public OrderTypeCollection GetOrders(StringCollection OrderIDList, DateTime CreateTimeFrom, DateTime CreateTimeTo, TradingRoleCodeType OrderRole, OrderStatusCodeType OrderStatus, ListingTypeCodeType ListingType, PaginationType Pagination, DateTime ModTimeFrom, DateTime ModTimeTo, int NumberOfDays, bool IncludeFinalValueFee, SortOrderCodeType SortingOrder);

幾乎所有這些參數都是必需的,不接受 null。 有些將接受空白變量。 所以我有這個代碼來調用該方法:

var roletype = TradingRoleCodeType.Seller;
var orderstatuscode = OrderStatusCodeType.All;
var pagination = new PaginationType();
pagination.EntriesPerPage = itemsPerPage;
pagination.PageNumber = pageNumber;
int noOfDays = new int();
DateTime blankDate = new DateTime();  // Not blank, but 01/01/0001 12:00:00 AM
orders = apicall.GetOrders(null, fromDate, toDate, roletype, orderstatuscode, new ListingTypeCodeType(), pagination, blankDate, blankDate, noOfDays, false, SortOrderCodeType.Ascending);

此代碼將運行,但返回錯誤“不提供 CreateTimeFrom/To 和 ModTimeFrom/To,只提供一個或另一個”如果我編寫自己對 API 的調用,我可以省略不需要的參數,但是通過使用 eBay Nuget 包構建的方法,我被迫提交參數。 對我來說,這種方法似乎是不可能使用的,因為它需要提交兩組日期,但是如果提交兩組日期,就會被服務器拒絕。

我對 C# 相當陌生,所以我可能遺漏了一些簡單的東西。 該方法有 3 個重載,但沒有一個接受所需的參數集。

我需要選擇參數較少的更簡單的 GetOrders 溢出之一。 然后將可選參數輸入到父對象中。 例如:

                var orderstatuscode = OrderStatusCodeType.All;
                var pagination = new PaginationType();
                pagination.EntriesPerPage = itemsPerPage;
                pagination.PageNumber = pageNumber;
                apicall.Pagination = pagination;
                orders.AddRange(apicall.GetOrders(fromDate, toDate, roletype , orderstatuscode));

-- 編輯 -- 在對代碼做了更多工作后,我發現了一種更靈活的方法來支持自定義參數選擇。

                while (hasOrders)
                {
                    Console.WriteLine("Getting page {0}.... ", pagination.PageNumber);

                    apicall.Pagination = pagination;
                    apicall.ModTimeFrom = fromDate;
                    apicall.ModTimeTo = toDate;
                    apicall.OrderRole = TradingRoleCodeType.Seller;
                    apicall.OrderStatus = OrderStatusCodeType.All; ;
                    apicall.Execute();
                    orders.AddRange(apicall.ApiResponse.OrderArray);
                   //orders.AddRange(apicall.GetOrders(fromDate,toDate, roletype, orderstatuscode));   // No overflow will support modified date.
                    hasOrders = apicall.HasMoreOrders;
                    pagination.PageNumber++;
                }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM