SuperAPI AI 工具集

wix-webhooks

编程与开发

查看项目

更新于 10-15 22:14

技能介绍

用途:帮助自托管或自管理应用接收并验证 Wix Webhook,排查 JWT 签名验证失败问题,并处理订单类事件。

主要能力:Wix 每个 Webhook 以 HTTP POST 投递,整个请求体是 Wix 用 RS256 签名的 JWT,没有 X-Wix-Signature/HMAC 头,也不是 Standard Webhooks,验证即用应用公钥校验 JWT。公钥从应用面板 Custom Apps → 你的应用 → Webhooks → "Get Public Key" 获取,按应用唯一,无全局 JWKS 端点。必须对原始未解析的 body 验证,重新序列化会破坏签名。解码后的 JWT 为嵌套信封:外层 { data, iat, exp } → data 是 JSON 字符串 → 解析得 { eventType, instanceId, data } → 再解析内层 data 得 { id, entityFqdn, slug, entityId, eventTime, ... }。外层 eventType 如 wix.ecom.v1.order_created,内层用 entityFqdn 加 slug 表示同一事件。

使用方式:Node.js 用官方 @wix/sdk 一次调用完成验证与解码,传入原始文本 body,先注册类型化处理器再调用 client.webhooks.process(rawBody)。Python 无官方服务端 SDK,可用 PyJWT 手动以公钥验证。环境变量 WIX_APP_ID 与 WIX_PUBLIC_KEY(PEM,需转义换行,或用 base64 编码 PEM)。

事件类型:wix.ecom.v1.order_created、order_approved、order_updated、order_canceled 等,以及应用安装移除等实例生命周期事件。

限制:需在约 1250 毫秒内返回 200,否则 Wix 最多重试 12 次;事件可能乱序、重复,应按事件 ID 去重并异步处理慢任务;部分旧版 Webhook 仅发送变更字段。本地开发可用 npx hookdeck-cli listen 3000 wix --path /webhooks/wix 建立隧道。建议配合 webhook-handler-patterns 技能。