SuperAPI AI 工具集

paddle-webhooks

前端与建站

查看项目

更新于 10-16 03:14

技能介绍

用途:构建接收 Paddle Webhook 事件(订阅变更、交易、客户更新、打款等)的服务端端点,覆盖创建通知目标、编写 Next.js Route Handler、处理重试与幂等、本地测试。

交付契约:仅 5 秒内返回 2xx 视为已送达,其他响应(400、401、500、503、重定向、超时)均按失败重试;沙箱约 15 分钟内重试 3 次,生产约 3 天内重试 60 次(指数退避);每次重试 event.eventId 相同,可作为去重键;不跟随重定向;重试预算耗尽后事件消失,可从仪表盘通知日志或 Paddle MCP 的 client.notifications.replay(notificationId) 手动重放。

前置条件:Paddle 账户与已配置的产品和价格;三个环境变量 NEXT_PUBLIC_PADDLE_ENV、PADDLE_API_KEY、PADDLE_NOTIFICATION_WEBHOOK_SECRET;安装 npm install @paddle/paddle-node-sdk。

主要步骤:在 Paddle 仪表盘 Developer tools > Notifications 新建 Webhook 目标并复制密钥;创建单例 SDK 辅助文件;编写 Route Handler,用 await request.text() 取原始 body,调用 paddle.webhooks.unmarshal(rawBody, secret, signature) 验证并反序列化;用 EventName 枚举分发事件;处理器按 Paddle 资源 id 做 UPSERT 实现幂等,非幂等副作用可用 processed_webhooks 表按 eventId 去重;快速返回 200,重活放入队列。

本地测试:用 ngrok http 3000 等隧道暴露本地 URL,或用仪表盘 Simulations 的 Webhook 模拟器。

限制与常见错误:验证失败时返回 2xx 会丢失事件;不要在验证前解析 JSON;每个目标密钥独立,勿混用沙箱与生产;处理器超 5 秒会超时并消耗重试;Webhook 不保证顺序,应做收敛式 UPSERT。