我正在尝试使用取件服务安排取件。首先我发送 Pickup Availability 请求以获取截止时间,然后使用我在 Pickup Request 中获得的结果。但在那之后,我收到错误“截止时间后的就绪时间”,显然是在截止时间之前。在我的示例中,返回的截止时间是 16:00,但我可以安排取件的最晚时间是 11:00。部分取件可用性响应:
<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
UPD:根据评论中的讨论获得更多详细信息
那就是写的关于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>
文档说,取件可用性的时间戳是根据当地 TZ 使用的(取自邮政编码)。本地 TZ 是 PST,与 UTC 有 -07:00 的偏移量。取件可用性回复中还有一行指示处理我的取件可用性请求的时间。我检查并看到它也在 PST 中,所以这一步看起来工作正常:
<v3:RequestTimestamp>2013-03-26T11:58:37</v3:RequestTimestamp>
所以我得到了太平洋标准时间 16:00 的截止时间,下一步是使用创建取件请求将实际取件时间安排在不迟于截止时间的时间。对于这个请求ReadyTimestamp
应该包含 TZ 信息,所以我尝试了不同的日期/时间格式。因此,如果我想为太平洋标准时间 14:00 创建取件,我会尝试2013-04-09T21:00:00
、2013-04-09T21:00:00.000Z
、2013-04-09T21:00:00+00:00
和2013-04-09T14:00:00-07:00
。在所有这些情况下,我都会得到 error Ready Time after Cutoff Time
。我尝试了许多不同的值,发现它的最新工作时间是 04:00 PST(与 11:00 UTC 相同)。所以 04:00 给了我success
,而 04:01 给了我Ready Time after Cutoff Time
,它适用于任何日期/时间格式。