Webhook介绍
Last updated
Last updated
Webhook 是一个API 概念,是微服务 API 的使用范式之一,适用于商店发生特定事件后执行代码的应用程序。避免了应用程序定期轮询特定事件。每当事件发生时,都会主动向端点发送一个webhook。
Webhook订阅声明了应用接收某个主题的 Webhook 的意图。订阅的定义如下:
事件名称
订阅端点
端点是Mshop向其发送 Webhook 的目的地。
说明
请求方法
接口地址
获取 Webhook 列表
GET
/openapi/{api_version}/webhooks
获取 Webhook 数量
GET
/openapi/{api_version}/webhooks/count
获取指定 Webhook
GET
/openapi/{api_version}/webhooks/{id}
创建 Webhook
POST
/openapi/{api_version}/webhooks
更新 Webhook
PUT
/openapi/{api_version}/webhooks/{id}
删除 Webhook
DELETE
/openapi/{api_version}/webhooks/{id}
每个 webhook 由 Headers 和 Payload 组成。Headers 包含有关 Webhook 的元数据,例如安装应用程序的商店以及API版本。
标头
说明
X-Hotishop-Topic
订阅的事件
X-Hotishop-Hmac
使用 HTTPS 传输时进行验证
X-Hotishop-Shop-Domain
用于识别事件关联的商店
X-Hotishop-API-Version
生成 Webhook的API版本
X-Hotishop-Webhook-Id
用于识别唯一的 webhook
首次发送失败后,按以下规则重发:
1分钟、5分钟、10分钟、30分钟、1小时、2小时。后续都以2小时为间隔发送,直到重发19次。
每5次发送一次告警邮件,最后一次失败后发送 webhook 删除提示邮件。
我们目前已支持的事件列表:
事件对象
事件
说明
Checkout
checkouts/create
v1.28已支持
checkouts/update
v1.28已支持
checkouts/delete
v1.28已支持
Collection
collections/create
v1.25 已支持
collections/update
v1.25 已支持
collections/delete
v1.25 已支持
Customer
customers/create
1.27 已支持
customers/update
1.27 已支持
customers/delete
1.27 已支持
Order
orders/cancelled
v1.23 已支持
orders/cancel_refunded
1.27 已支持
orders/paid
v1.20 已支持
orders/refunded
v1.23 已支持
orders/created
v1.43已支持
orders/updated
v1.43已支持
Product
products/create
v1.21 已支持
products/update
v1.21 已支持
products/delete
v1.21 已支持
Shop
app/uninstalled
v1.20 已支持
shop/update
1.26 已支持
Theme
themes/create
1.27 已支持
themes/publish
1.27 已支持
themes/update
1.27 已支持
themes/delete
1.27 已支持
Domain
domains/update
v1.27已支持
Price Rules
price_rules/update
v1.27已支持
price_rules/create
v1.27已支持
price_rules/delete
v1.27已支持
Stock
stocks/update
v1.39已支持
标头X-Hotishop-API-Version
表示指定使用哪个版本的 API 来序列化 Webhook 事件负载。
如果应用程序设置为使用不再受支持的 API 版本,则 Mshop将使用最旧稳定版本来来提供支持。
若您的应用需要变更 API 版本,请联系平台的应用管理员进行操作。
版本切换请注意版本切换过程中的数据兼容问题 ,以免您的应用程序出错。
处理重复的 webhook
在极少数情况下,您的应用可能会多次收到相同的 webhook 事件。这种情况下,建议通过将X-Hotishop-Webhook-Id
标头与先前事件的X-Hotishop-Webhook-Id
标头进行比较来检测重复的 webhook 事件。