在使用API​​的事务期间混淆shippo错误

时间:2017-02-22 00:45:53

标签: node.js shippo

我在几天前创建的费率对象ID上执行交易时一直收到此错误。

{
  "source": "USPS",
  "code": "",
  "text": "The selected shipment date must be within 7 days of 02/15/2017, 07:11PM CST."
}

我将shippo与我的Node.js Web应用程序集成。我正在使用shippo node.js库。

shippo.shipment.create({,function(err,shipment){});

我建了一个基本商店。当用户进入结账部分时,我从shippo获得费率。我向用户显示这些费率。用户选择他想要的费率。我将费率对象ID保存到数据库。

shippo.transaction.create({,function(err,transaction){});

我履行了订单并打印了运输标签。应用程序转到数据库并检索速率对象ID以使用shippo执行事务。作为回报,我想要获得跟踪#和标签信息,但我得到了错误。

我首先想到的是,费率对象ID只持续了7天,然后就自己或其他东西过期了。当我检查费率对象ID时:

https://api.goshippo.com/rates/2a0b50cbc5184362a0ea2385b490bc7b

它显示对象已创建2/18。今天是2月21日。所以那是不可能的。错误显示“选定的发货日期必须在美国中部标准时间02/15/2017,07:11 PM的7天内。”

这是什么意思?我为什么得到它?

似乎只会对2天前创建的对象ID进行评分。如果昨天创建了费率对象ID,我仍然可以执行交易没问题。

screenshot

1 个答案:

答案 0 :(得分:0)

您似乎正在使用导致此错误发生的过去(不是同一天)的费率。

当您在/shipments/端点发货时,您可以在创建货件时指定submission_date。如果您没有指定submission_date(如果您知道计划将项目发送出去的那一天,通常只会这样做),Shippo会自动将submission_date设置为请求的生成日期。

您收到错误的原因是,您过去使用费率为submission_date的货件。有些承运人只允许提交日期,即当前日期或将来某个日期。

您可以在货件对象上找到可能有用的更多详细信息here