eBay API GetOrders createTimeTo& createTimeFrom

时间:2013-06-15 05:16:59

标签: c# ebay-api getorders

我有点卡在这个上,似乎无法弄明白。我通过eBay API调用GetOrders请求。问题在于createTimeTocreateTimeFrom输入。

目前处理事情的方式如下:CreateTimeFrom = order.CreatedTime最后一次调用GetOrders时的最新处理顺序+ 1秒。我将createTimeTo值设置为当前的ebay官方时间。

现在这似乎工作得很好,但我担心的是因为当我在生产服务器上有东西时,是否有可能在同一秒内有多个订单?因为如果是这样的话我就会错过订单。

现在我知道getOrders的custhelp页面上有指导原则。我试过跟踪它们,但我发现很难将逻辑应用到我的应用程序中。

客户帮助页面上的指南如下:

  

将“创建/修改TimeFrom”设置为上次拨打电话减去2分钟。您将返回2分钟,以确保没有错过任何订单。   将“创建/修改TimeTo”时间设置为当前时间减去2分钟。您将返回以确保您不会接收任何仍在完成的订单。

基于上述逻辑,我对第二点(createTimeto)有点困惑,我只检索已完成的销售,所以我真的需要回去2分钟吗?将CreateTimeTo作为当前的eBay官方时间会有任何问题吗?这种方法会因任何原因错过任何订单吗?

此外,我应该将我的createTimeTo和CreateTimeFrom值基于Ebay服务器时间,就像我基于本地时间一样,本地时间可能与eBay服务器时间不一致,这是所有订单所基于的...

其他人如何处理此事?

我注意到有些人使用NumberOfDays属性作为处理日期的替代方法,是否有人知道该方法的任何优点?

1 个答案:

答案 0 :(得分:-1)

使用Ebay时间最好。如果你能,你应该。您可以使用GetEbayTime的结果来同步您的时钟。

最后2分钟,是为了帮助Ebay处理订单的延迟/分发性质。 (炒)。您可能会收到未完全完成的订单。在guidlines中重叠之后将有助于防止此问题。

防止重复的另一种方法是对返回的Ebay TransactionId-OrderId执行检查。使用某种数据库。

或者针对您的具体问题,保留上次GetOrder调用中返回的Id列表,并在下次加载该列表。并检查。 (你的问题只询问最近的订单)。

请参阅:GetOrders Best Practices

Re:NumberofDays,这只是一个方便。它与Date过滤器同时添加。 (#691 2010-10-14)。如果你愿意,可以使用它。

最后:有关这些类型的信息,请参阅Ebay's GetOrder Documention