生成一张棚拍图需要一点时间。您的系统可以每隔几秒问一次 LotShow 好了没有,也可以让 LotShow 在完成的那一刻主动告诉您的系统。后一种方式就是 webhook,也是 LotShow API 交付结果的方式。
轮询还是 webhook
轮询是指您的代码定时调用 GET /v1/jobs/{id},直到状态改变。这种方式可行,但大多数调用都不会带回任何新信息,而且处理的车越多,调用次数就越多。
webhook 把这个过程反了过来。创建任务时,您给 LotShow 一个 URL。任务完成后,LotShow 会向这个 URL 发送一个包含结果的 HTTPS POST 请求。在有事可做之前,您的系统什么都不用做。
事件
- job.completed:棚拍图已就绪,附带成品图片的 URL。
- job.failed:照片未能完成,其点数已退还。
- credits.low:您的共享余额已低于 20 个点数。
您可以为每个端点选择接收哪些事件,这样库存系统可以只监听已完成的照片,而计费工具只接收余额不足的通知。
一次推送是什么样的
已完成的任务会以一个小小的 JSON 正文送达:
{
"event": "job.completed",
"created_at": "2026-10-14T09:41:40.000Z",
"id": "Hn4kR2pXq8VbT1sLw0Za",
"backdrop": "white-hall",
"vehicle_id": "pQ7mT2vK9cLx4RbN1sHd",
"name": "stock-4471",
"output_url": "https://firebasestorage.googleapis.com/v0/b/…/default.jpg?alt=media&token=…",
"seconds": 62,
"credits_left": 319
}id 就是您创建任务时拿到的任务 ID。所以在您自己的系统中把任务 ID 和库存编号存在一起是值得的:webhook 告诉您哪个任务完成了,您的记录告诉您它属于哪辆车。
搭建一个好的端点
- 快速响应。事件一到达就返回 2xx 状态码,然后在后台完成实际工作,比如下载图片。
- 做好重复的准备。LotShow 会一直重试,直到您的端点响应,所以同一次推送可能送达不止一次,比如在超时之后。在再次处理之前,先检查是否已经处理过这个事件。
- 不要假设顺序。相隔一秒发送的两个任务,完成顺序可能任意。请按任务 ID 匹配结果,而不是按到达时间。
- 校验签名。每次推送都会用您账户的签名密钥(在“设置”中)签名,签名位于
webhook-id、webhook-timestamp和webhook-signature请求头中(Standard Webhooks 方案)。未通过校验的请求一律拒绝。 - 记录一切。保存每次推送的原始正文和时间。出现异常时,日志是您首先要查看的地方。
上线前先测试
“设置”中的每个端点都有“发送测试”按钮,API 也提供 POST /v1/webhooks/{id}/test。两者都会向您的端点发送一个示例事件,让您无需花费点数就能检查处理程序。用请求检查工具或本地隧道,就能清楚看到您的端点收到了什么。
失败的任务不花钱
收到 job.failed 时,点数已经退回您的余额。请把这辆车标记为需要重拍,而不是再次发送同一张照片。
准备开始开发了吗?API 密钥随专业版和精英版提供:在“设置”的“API 密钥”中创建即可。
