用途:接收并验证 Nuvemshop(Tiendanube)Webhook,适用于搭建 Nuvemshop 应用的 Webhook 处理器、调试 x-linkedstore-hmac-sha256 签名校验失败,以及处理 order/created、order/paid、order/cancelled 等事件。
主要能力:验证签名。Nuvemshop 用应用 client secret(Partners Portal 中的 OAuth 应用密钥)对原始请求体做 HMAC-SHA256,摘要以十六进制放在 x-linkedstore-hmac-sha256 头中。必须在 JSON 解析前对精确原始字节计算 HMAC,并用时间安全方式比较。官方无 SDK,各语言均需手动实现。资料给出 Node 与 Python 示例:Node 用 crypto.createHmac('sha256', clientSecret).update(rawBody).digest('hex') 配合 crypto.timingSafeEqual;Python 用 hmac.new(client_secret.encode(), raw_body, hashlib.sha256).hexdigest() 配合 hmac.compare_digest。
使用方式:需在 3 秒内返回 2XX,否则 Nuvemshop 会重试(立即,然后约 5/10/15 分钟,再按 ×1.4 指数退避,48 小时内最多 18 次),耗时操作应异步处理。载荷很精简,通常只有 store_id、event 和资源 id,需用该店铺 access token 调用 REST API 获取完整记录,如 GET https://api.tiendanube.com/v1/{store_id}/orders/{id}。事件采用 resource/action 格式,常见有 order/created、order/paid、order/cancelled、order/updated、order/fulfilled、product/created、product/updated、product/deleted、customer/created、app/uninstalled。环境变量为 NUVEMSHOP_CLIENT_SECRET。本地开发可用 npx hookdeck-cli listen 3000 nuvemshop --path /webhooks/nuvemshop 启动隧道。完整处理器示例见 examples/express/、examples/nextjs/、examples/fastapi/。
限制:资料未提供官方 SDK、收费、价格或平台支持范围等信息;签名校验需自行实现,且必须基于原始字节。