eBay配送API getOrders返回的“总数”比订单数组的大小大1

问题描述

我正在使用eBay配送API来检索JSON格式的订单。我一直在响应中包含“总计”字段的问题:当我的日期范围包含特定时间(今天大约是世界标准时间10:07)时,它始终大于1。

这里是var_dump d示例响应的PHP / Xdebug json_decode,它修剪了实际的(不相关的)订单数据。请注意'total'size间的区别:

object(stdClass)[22]
  public 'href' => string 'https://api.ebay.com/sell/fulfillment/v1/order?filter=lastmodifieddate:%5B2020-10-12T14:44:56.000Z..%5D,orderfulfillmentstatus:%7BIN_PROGRESS%7CNOT_STARTED%7D&limit=200&offset=0' (length=177)
  public 'total' => int 177
  public 'limit' => int 200
  public 'offset' => int 0
  public 'orders' => 
    array (size=176)
    ...

我尝试使用认值作为限制和偏移量,在这种情况下,最后一页的订单数太少(offset+size(array)==total+1)。我还用不同的开始日期运行了好几次,以确保它不是一个奇怪的计时问题。只要lastmodifieddate比今天的世界标准时间10:08更新,数字就适合,否则就不适合。

这仅仅是eBay API中的错误还是更深层的含义?我会假设这个数字可以告诉我当前查询中包含的订单总数(不考虑限额和抵消),但是这种不一致使我相信它可以算出一些不包括在内的订单(例如已完成的订单或未付款的订单)。

奇怪的是,当我调整限制和偏移量以准确地适合实际数组大小时,它实际上包括一个“下一个”字段,并使用该字段的值来检索“下一页”(这是最后一个顺序)结果在此:

object(stdClass)[22]
  public 'href' => string 'https://api.ebay.com/sell/fulfillment/v1/order?filter=lastmodifieddate:%5B2020-10-13T09:29:03.000Z..%5D,orderfulfillmentstatus:%7BIN_PROGRESS%7CNOT_STARTED%7D&limit=78&offset=78' (length=177)
  public 'total' => int 79
  public 'prev' => string 'https://api.ebay.com/sell/fulfillment/v1/order?filter=lastmodifieddate:%5B2020-10-13T09:29:03.000Z..%5D,orderfulfillmentstatus:%7BIN_PROGRESS%7CNOT_STARTED%7D&limit=78&offset=0' (length=176)
  public 'limit' => int 78
  public 'offset' => int 78
  public 'orders' => 
    array (size=0)
      empty

对此行为有解释吗?

侧面说明:我没有将问题标记PHP,因为问题出在我从REST API获得的json响应中,而与我使用何种语言无关。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)