所以我正在研究Postmates API,我已经能够创建一个交付。这很棒,我还使用 ngrok 设置了一个 webhook url 来测试邮递员的响应,但我完全不知道如何确定取件何时实际完成以及投递/交付实际完成。
我将所有响应保存在数据库中,每次执行测试交付时,我都会收到来自 webhook 终结点的 70 个调用。每次 47 个都与'kind': 'event.delivery_status'
有关.以下是统计数据:
这一切都在沙盒的测试模式下...
其中11个是'status':'pickup_complete'
其中14个是'status':'pickup'
其中11个是'status':'dropoff'
其中11个是'status':'delivered'
status=delivered
的所有 Webhook 响应都具有'data.courier_imminent':false
值。
我去了'data.tracking_url'
的网页,当网页显示交付完成时,我立即更新了数据库,看看我保存了多少条记录,而我总共只有 32 条记录。 这意味着 Webhook 在应该完成后继续向我发送更新。
最后,所有这些状态都不是有序的,它们完全是随机的,实际上收到的倒数第 6 条记录是pickup_complete
状态。
真正的问题:
我怎么知道什么是真正的picked=completed
,delivered=complete
等。
您将收到一个类型为event.delivery_status
的网络钩子。有效负载正文中的一个字段将是{status: "delivered"}. This has been accurate so far. Postmates doesn't return a
delivered_at' 时间戳,但您可以创建自己的时间戳并将其与交付一起存储以供报告。
至于网络钩子的数量,Postmates有一个送货机器人(称为robo),它可以像真正的Postmate一样移动。您将收到许多具有更新位置的event.courier_update
类型的 Webhook。