我正在尝试使用Pickup Service进行预定。首先发送Pickup Availability请求以获取截止时间,然后在Pickup Request中使用结果。但是之后我得到了错误提示“Ready Time after Cutoff Time”,尽管时间显然在截止时间之前。在我的例子中,返回的截止时间是16:00,但我能够安排取货的最晚时间是11:00。
Pickup可用性响应的部分内容:
<v3:ScheduleDay>SAME_DAY</v3:ScheduleDay>
<v3:Available>true</v3:Available>
<v3:PickupDate>2013-04-02</v3:PickupDate>
<v3:CutOffTime>16:00:00</v3:CutOffTime>
产生错误的日程安排获取请求的一部分:
<ns1:ReadyTimestamp>2013-04-02T13:00:00</ns1:ReadyTimestamp>
<ns1:CompanyCloseTime>20:00:00</ns1:CompanyCloseTime>
这里是两个请求的完整请求/响应代码:http://pastebin.com/jqtfsRFc 更新:根据评论中的讨论提供更多细节。
因此,我发出了一个取件可用性请求并查看了回复:ReadyTimestamp必须不晚于CutOffTime,可通过PickupAvailabilityRequest查询。
<v3:ScheduleDay>SAME_DAY</v3:ScheduleDay>
<v3:Available>true</v3:Available>
<v3:PickupDate>2013-04-09</v3:PickupDate>
<v3:CutOffTime>16:00:00</v3:CutOffTime>
文件说明说,Pickup可用性的时间戳是根据本地时区(从邮政编码中获取)使用的。我们当地的时区是PST,与UTC相差-07:00小时。 Pickup可用性回复中还有一行表明我的Pickup可用性请求被处理的时间。我检查并发现它也在PST中,所以这一步看起来很正常:
<v3:RequestTimestamp>2013-03-26T11:58:37</v3:RequestTimestamp>
那么我得到了16:00 PST的截止时间,下一步是使用创建Pickup请求安排实际的取件时间,使其不晚于截止时间。对于此请求,ReadyTimestamp
应包含TZ信息,因此我尝试了不同的日期/时间格式。因此,如果我想在14:00 PST之前创建取件,我会尝试2013-04-09T21: 00: 00
,2013-04-09T21:00:00.000Z
,< code>2013-04-09T21:00:00+00:00 和2013-04-09T14:00:00-07:00
。在所有这些情况下,我都会收到 Ready Time after Cutoff Time
错误。我尝试了许多不同的值,并发现它可以工作的最晚时间是PST 04:00(与UTC 11:00相同)。因此,04:00会给我success
,而04:01会给出Ready Time after Cutoff Time
,并且它以任何日期/时间格式工作方式都是如此。
<ns1:ReadyTimestamp>2013-04-02T13:00:00</ns1:ReadyTimestamp>
,这是他们想要接收的方式吗?抱歉,我从未使用过联邦快递的API,但我想深入了解一下,因为你在这个问题上没有得到太多的回应。 - zajdPickupRequestType
类型。请求类型的有效值为:SAME_DAY
和FUTURE_DAY
。您是否尝试使用FUTURE_DAY
值请求取件可用性?我认为CutOffTime
可能会有所不同。 - fitheflow