用途:在 Next.js(App Router)应用中添加 Paddle 托管结账,可选 overlay(弹窗覆盖当前页)或 inline(嵌入自有布局)。仅客户端实现,服务端事件需另配 webhook 与订阅同步。
主要能力:初始化 Paddle.js;用 Checkout.open() 打开结账并传入行项目;通过 eventCallback 监听 checkout.loaded、checkout.items.updated、checkout.completed、checkout.error、checkout.payment-error 等事件驱动自有 UI;支持客户邮箱或 Paddle 客户 ID 预填;用 Checkout.updateItems() 动态改数量、换价格或加购,需节流(建议 1 秒);可设 successUrl 跳转。
使用方式:安装 npm install @paddle/paddle-js。配置环境变量 NEXT_PUBLIC_PADDLE_CLIENT_TOKEN 与 NEXT_PUBLIC_PADDLE_ENV(sandbox 或 production)。overlay 为默认,无需 displayMode;inline 需设 displayMode: "inline" 并让 frameTarget 类名与页面元素一致。变体可选 one-page 或 multi-page。
适用场景:Next.js 商店、订阅或一次性购买页面,需要品牌化内嵌结账或快速弹窗结账。
限制:需 Paddle 账户、已建产品与价格、域名通过审批、默认支付链接;沙箱与生产令牌和价格 ID 不通用。开通权益应以 webhook 为准,不能依赖跳转。常见问题包括域名未审批、未 await initializePaddle、frameTarget 不匹配、重复初始化、未节流 updateItems。验证可用沙箱测试卡 4242 4242 4242 4242。