【问题标题】:eBay API GetOrders createTimeTo & createTimeFromeBay API GetOrders createTimeTo & createTimeFrom
【发布时间】:2013-06-15 05:16:59
【问题描述】:

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

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

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

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

客户帮助页面的指引如下:

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

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

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

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

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

【问题讨论】:

    标签: c# ebay-api


    【解决方案1】:

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

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

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

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

    见:GetOrders Best Practices

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

    最后:这些类型的事情请参考Ebay's GetOrder Documention

    【讨论】:

    • 投反对票的人会好心提出改进建议吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多