0

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

目前我处理事情的方式如下:CreateTimeFrom = order.CreatedTime从上次调用 GetOrders 开始的最新处理订单 + 1 秒。我将createTimeTo值设置为当前的 ebay 官方时间。

现在这似乎工作正常,但我很担心,因为当我在生产服务器上有东西时,是否有可能同时有多个订单?因为如果是这样,那么我将丢失订单。

现在我知道 custhelp 页面上有针对getOrders. 我尝试关注它们,但我发现很难将逻辑应用于我的应用程序。

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

将“Create / Mod TimeFrom”设置为您上次拨打电话的时间减去 2 分钟。您将返回 2 分钟以确保不会错过任何订单。将“Create / Mod TimeTo”时间设置为当前时间减去 2 分钟。您将返回以确保您不会收到任何仍在完成过程中的订单。

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

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

其他人是如何处理这个问题的?

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

4

1 回答 1

-1

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

最后的 2 分钟是为了帮助 Ebay 处理订单的延迟/分布式性质。(推测)。看来您可能会收到未完全完成的订单。遵循指南中的重叠将有助于防止此问题。

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

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

请参阅:GetOrders 最佳实践

回复:NumberofDays,这只是一个方便。它与日期过滤器同时添加。(#691 2010-10-14)。如果需要,请使用它。

最后:有关这些类型的内容,请参阅Ebay 的 GetOrder 文档

于 2013-06-18T04:43:48.157 回答