跳到主要内容

Webhooks

当资产事件发生时,Webhooks 会向外部系统发送实时通知。可与 Zapier、Make、自定义 API 或库存系统配合使用。


1. 访问 Webhooks

导航: AssetsSettingsWebhooks 选项卡。


2. 创建 Webhook

  1. 点击 New Webhook
  2. 输入 Webhook Name(例如 "Sync to ERP")
  3. 输入 Webhook URL - 您的端点(必须接受 POST 请求)
  4. 选择要订阅的 Events(或全选)
  5. 可选:设置 Secret Key 用于 HMAC 签名验证
  6. 可选:添加 Custom Headers(例如 API key)
  7. Active 设为 Yes
  8. 点击 Save

3. 可用事件

资产生命周期

EventWhen Triggered
asset.createdNew asset created
asset.updatedAsset updated
asset.deletedAsset deleted

分配与指派

EventWhen Triggered
asset.allocatedAsset allocated to staff
asset.revokedAllocation revoked

签入/签出

EventWhen Triggered
asset.checked_outAsset checked out
asset.checked_inAsset checked in

预订

EventWhen Triggered
asset.reservedReservation created
asset.reservation_approvedReservation approved
asset.reservation_rejectedReservation rejected

维护与转移

EventWhen Triggered
asset.maintenance_scheduledMaintenance scheduled
asset.maintenance_completedMaintenance completed
asset.transferredTransfer completed

丢失、损坏、处置

EventWhen Triggered
asset.lostAsset reported lost
asset.brokenAsset reported broken
asset.warrantyAsset sent for warranty
asset.liquidatedAsset liquidated

警报(通过 Cron)

EventWhen Triggered
alert.warranty_expiringWarranty expiring in 30 days
alert.maintenance_dueMaintenance due in 7 days
alert.checkout_overdueCheckout overdue
alert.low_stockStock below threshold

4. 有效负载格式

每个 webhook 发送 JSON 有效负载:

{
"event": "asset.created",
"timestamp": "2025-02-04T12:00:00+00:00",
"source": "perfex_assets_module",
"asset_id": 123,
"asset": { ... },
"data": { ... }
}
  • event - Event name
  • timestamp - ISO 8601 format
  • asset_id - ID of the asset (null for deleted)
  • asset - Asset data (or extra data for deleted)
  • data - Event-specific data (e.g., allocation details)

5. 签名验证

模块在请求头中发送 HMAC-SHA256 签名:

X-Asset-Webhook-Signature: <signature>
X-Asset-Webhook-Timestamp: <timestamp>
X-Asset-Webhook-Event: <event>

在您的端点中验证:

signature = HMAC-SHA256(secret_key, request_body)

6. Webhook 日志

  • 查看 Webhook Logs 了解发送状态
  • Response Code - 2xx = 成功,4xx/5xx = 失败
  • Retry - 部分接口允许重试失败的发送
  • 日志通常在 30 天后清理

7. 测试 Webhook

使用 Test Webhook 发送测试有效负载。用于验证您的端点可访问且配置正确。


最佳实践

  • 使用 HTTPS 作为 webhook URL
  • 验证签名 以确保持有来自模块的请求
  • 快速响应(例如 200 OK)- 超时约 30 秒
  • 处理重复 - 同一事件可能被重试
  • 监控日志 以发现发送失败