用途
WooCommerce Webhooks 技能用于接收和验证来自 WooCommerce 商店的 Webhook 请求。适用于以下场景:搭建 WooCommerce Webhook 处理器、调试签名验证失败、理解 WooCommerce 事件类型与负载结构、处理订单/商品/客户事件,以及将外部系统与 WooCommerce 商店集成。
主要能力
该技能提供跨框架的签名验证与 Webhook 处理器示例代码,涵盖 JavaScript、Express、Next.js(App Router)和 FastAPI。核心验证逻辑使用 HMAC SHA256 对原始请求体计算摘要,并以 base64 编码后与请求头中的签名进行安全比较(timingSafeEqual / compare_digest)。
技能列出了常见事件类型及其触发时机与典型用途:
- order.created:新订单创建,用于发送确认邮件、更新库存
- order.updated:订单状态变更,用于跟踪履约、发送通知
- order.deleted:订单删除,用于清理外部系统
- product.created:商品新增,用于同步到外部目录
- product.updated:商品修改,用于更新价格与库存
- customer.created:新客户注册,用于欢迎邮件、CRM 同步
- customer.updated:客户信息变更,用于更新资料与偏好
使用方式
- 配置环境变量:WOOCOMMERCE_WEBHOOK_SECRET=your_webhook_secret_key
- 在处理器中读取请求头 X-WC-Webhook-Signature 与 X-WC-Webhook-Topic
- 使用原始请求体(raw body)进行签名验证,验证失败返回 400
- 验证通过后解析 JSON 负载并处理对应事件
WooCommerce Webhook 请求头包括:X-WC-Webhook-Signature(HMAC SHA256 签名,base64)、X-WC-Webhook-Topic(事件类型)、X-WC-Webhook-Resource(资源类型)、X-WC-Webhook-Event(动作)、X-WC-Webhook-Source(商店 URL)、X-WC-Webhook-ID(Webhook ID)、X-WC-Webhook-Delivery-ID(唯一投递 ID)。
本地开发可使用 Hookdeck CLI 进行测试,无需账号:
npx hookdeck-cli listen 3000 woocommerce --path /webhooks/woocommerce
该命令提供本地隧道与用于检查请求的 Web UI。
适用场景
适合需要将 WooCommerce 商店事件接入自有后端服务的开发者,例如订单同步、库存更新、客户数据同步到 CRM、外部目录同步等。
限制
资料未提供该技能的具体收费、价格、平台支持范围或性能效果等信息。签名验证必须使用原始请求体,若框架已解析请求体则需特别处理。生产环境建议配合 webhook-handler-patterns 技能实现幂等性、错误处理与重试逻辑。