SuperAPI AI 工具集

ebay-webhooks

编程与开发

查看项目

更新于 10-15 22:14

技能介绍

用途:帮助开发者搭建 eBay Webhook 端点,接收并验证 eBay Notification API(平台通知/事件通知)。适用于注册目标地址、处理端点校验、验证每条通知签名及处理特定事件。

主要能力:

  1. 端点 challenge 校验:注册或更新目标地址时,eBay 会请求 GET https://<your-endpoint>?challenge_code=...,需返回 HTTP 200 及 JSON {"challengeResponse":"<hex>"},其中 hex 为 challengeCode + verificationToken + endpoint 按此固定顺序拼接后的 SHA-256。顺序不可调换。
  2. 逐条签名验证:通知携带 x-ebay-signature 头(Base64 编码的 JSON,含 alg、kid、signature、digest)。用 kid 通过 getPublicKey 获取对应公钥,对原始请求体验签;公钥按 kid 缓存约 1 小时。
  3. 事件主题:如 MARKETPLACE_ACCOUNT_DELETION(账户关闭/数据删除,所有开发者须订阅或退出)、AUTHORIZATION_REVOCATION、ITEM_AVAILABILITY、ITEM_PRICE_REVISION、PRIORITY_LISTING_REVISION 等,主题位于 metadata.topic。完整主题与订阅所需 OAuth 范围由 getTopics 返回,不应硬编码。

使用方式:

  • 环境变量:EBAY_VERIFICATION_TOKEN(32-80 字符,仅 [A-Za-z0-9_-])、EBAY_ENDPOINT(eBay 调用的精确公网 URL)、EBAY_CLIENT_ID、EBAY_CLIENT_SECRET、EBAY_ENV(sandbox 或 production)。
  • 本地开发可使用 npx hookdeck-cli listen 3000 ebay --path /webhooks/ebay 建立隧道,将转发 URL 同时用作 EBAY_ENDPOINT 与注册目标地址;challenge 哈希中的 endpoint 必须是 eBay 实际调用的公开 URL,而非 localhost。
  • 官方 Node.js SDK 为 event-notification-nodejs-sdk,封装了上述算法(EventNotificationSDK.process 验签、validateEndpoint 处理 challenge);示例采用可离线测试的手动实现。

限制与注意事项:eBay 不使用共享密钥的 HMAC,也不遵循 Standard Webhooks 规范;签名使用 ECDSA 且以 SHA-1 计算;验签必须使用原始请求体字节,不可重新序列化;getPublicKey 需 OAuth 调用。生成文件时按要求在顶部添加注释:// Generated with: ebay-webhooks skill 与 // https://github.com/hookdeck/webhook-skills。公开资料未提供具体价格或更多平台细节。