关于 setup-polar
这是一份为开发者提供的交互式指南,用于在应用中配置 Polar 支付。它依次介绍 MCP 检查、组织与产品选择、凭据和集成代码配置、Webhook 测试,以及从 sandbox 迁移到生产环境。
主要功能
- 01检查并配置 Polar MCP
- 02收集框架与支付需求
- 03选择组织并创建产品
- 04准备令牌和集成代码
- 05配置并测试 Webhook
- 06将配置从 sandbox 转至生产环境
适用场景
- 01在新项目中配置 Polar 支付
- 02创建 sandbox 产品和结账流程
- 03设置本地 Webhook 测试
- 04为生产环境准备经过测试的集成
MCP 相关
指南会检查 Polar MCP 服务,并说明如何安装和认证生产或 sandbox 服务。它通过 MCP 列出组织、创建产品,也可配置部署环境的 Webhook 端点。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ polarsource/ agent-toolkit --skill setup-polar安装后在 Claude Code 中输入/setup-polar确认已加载。
详细介绍
Polar 设置向导
交互式设置指南,帮助你在项目中启用 Polar 付款功能。
设置流程
按顺序完成以下步骤:
步骤 1:检查 MCP 是否可用
首先,通过列出组织来检查 Polar MCP 服务是否可用:调用 execute 执行 GET /v1/organizations/,或者在服务为每项操作单独提供一个工具时,调用 organizations_list。
如果 MCP 工具可用: 跳到步骤 3。
如果 MCP 不可用: 继续步骤 2。
步骤 2:安装 Polar MCP
已安装 Polar 插件: 该插件已配置 Polar 服务(polar,以及可用时的 polar-sandbox)。请让用户登录该服务,优先选择 polar-sandbox:在 Claude Code 中使用 /mcp,在 Codex 中使用 codex mcp login <server>,在 Cursor 或 Antigravity 中通过 MCP 设置登录,在 Gemini CLI 中使用 /mcp auth <server>,在 ChatGPT 中则在提示连接时登录。然后继续执行以下验证。
否则,请根据用户的环境,引导其安装 Polar MCP 服务:
Claude Code:
# Production
claude mcp add --transport http polar https://mcp.polar.sh/mcp/polar-mcp
# Sandbox (recommended for setup)
claude mcp add --transport http polar-sandbox https://mcp.polar.sh/mcp/polar-sandbox
Cursor(.cursor/mcp.json):
{
"mcpServers": {
"polar-sandbox": {
"url": "https://mcp.polar.sh/mcp/polar-sandbox"
}
}
}
对于其他客户端,请参阅 Polar MCP 指南。安装后,用户需重启编辑器或命令行,并在出现提示时登录(在 Claude Code 中,运行 /mcp 并完成身份验证)。沙盒服务的登录地址为 sandbox.polar.sh,生产服务的登录地址为 polar.sh。
完成身份验证后,通过列出组织来验证 MCP 是否可用。
步骤 3:收集项目背景信息
询问用户:
-
框架:你使用的是什么框架?
- Next.js(App Router)、Express、Hono、Astro、SvelteKit、Remix、TanStack Start、Nuxt、Fastify、Cloudflare Workers,或其他 TypeScript/JavaScript 框架
- Python:目前没有集成技能;请参阅 Python SDK 文档
-
环境:从沙盒还是生产环境开始?
- 沙盒(新设置推荐)
- 生产环境
-
产品类型:你要销售什么?
- 订阅(定期付款)
- 一次性购买
- 两者都有
从此处开始,沙盒环境使用 polar-sandbox 服务的工具,生产环境使用 polar 服务的工具。如果只有 polar 可用(例如在 ChatGPT 中),则通过沙盒控制面板或 Polar CLI 创建沙盒产品。
步骤 4:选择组织
通过 MCP 列出组织。如果有多个组织,询问用户要使用哪一个。记下其 id、slug 和 default_presentment_currency。登录 MCP 服务时,如果用户尚未加入组织,系统已会要求其创建组织;如果没有 MCP,用户可以在以下地址创建组织:
步骤 5:创建首个产品
通过 MCP 创建产品(POST /v1/products/)。价格必须使用组织的 default_presentment_currency,且每个产品的计费周期固定。以下是月度订阅示例:
{
"organization_id": "<organization id from Step 4>",
"name": "Pro Plan",
"recurring_interval": "month",
"prices": [{ "amount_type": "fixed", "price_amount": 2900, "price_currency": "<default_presentment_currency>" }]
}
一次性购买时省略 recurring_interval。“两者都有”或同时提供月度和年度计费,意味着需要创建不同的产品。向用户展示服务、组织、名称、价格、货币和周期,并在用户确认后创建产品。
保存返回的产品 ID,以便集成结账功能。
步骤 6:生成集成代码
交由 polar-integration 技能为步骤 3 中选择的框架生成 Checkout、Customer Portal 和 Webhooks 端点。该技能包含规范的、与框架无关的方案,以及各框架对应的变体。
调用该技能前,请确保用户已准备好以下环境变量(使用其框架提供的任意加载器):
POLAR_ACCESS_TOKEN= # organization access token, created below
POLAR_WEBHOOK_SECRET= # created in Step 7
POLAR_ENVIRONMENT=sandbox # omit or set to "production" when going live
创建访问令牌最快的方法是使用 Polar CLI。使用 npm install -g @polar-sh/cli 安装,然后让用户运行:
polar auth login --sandbox
token=$(polar auth token --scope checkouts:write --scope customer_sessions:write) && echo "POLAR_ACCESS_TOKEN=$token" >> .env
polar auth token 会在浏览器中打开令牌页面,并预先选中相应的权限范围;随后等待用户创建令牌并将其打印出来,因此它会将令牌保存到 .env,而不会显示出来。令牌属于当前激活的组织及其环境:polar auth whoami --json 会显示当前组织和环境,polar auth org 可以更改它们。
如果不使用 CLI,请在沙盒或生产环境的控制面板中创建令牌:Settings → Access Tokens → Create token。
传递步骤 5 中的产品 ID,以便在步骤 8 中测试结账链接。
步骤 7:设置 Webhooks
启动开发服务器,然后按照 polar-testing 中的“本地 Webhook 测试”说明,使用 Polar CLI 将 Webhooks 转发到该服务器。无需隧道或控制面板端点:
- 如果步骤 6 中跳过了此步骤,请安装 CLI 并让用户运行
polar auth login --sandbox,这会打开浏览器。 - 使用
polar webhook listen --print-secret将本地签名密钥保存到.env,然后重启开发服务器。 - 在后台运行
polar webhook listen <port>/<webhook-path>,使用步骤 6 中生成的路由路径。如果账号有多个组织,请传入--org <id from Step 4>。 - 运行
polar webhook trigger order.paid。成功时,退出代码为 0,并显示一行Response 2xx。如果失败,它会打印处理程序的响应,并以状态码 1 退出;修复处理程序后重试。如果它只提示事件已由polar webhook listen终端转发,请检查listen输出。
部署时,请在控制面板中为公开 URL 创建 Webhook 端点(Settings → Webhooks),或通过 MCP 创建(设置 url、format: "raw",以及 events:order.paid、subscription.created 和 subscription.canceled)。在已部署环境中,将该端点的密钥设为 POLAR_WEBHOOK_SECRET。MCP 响应中包含该密钥,因此请告知用户在哪里复制它,不要重复提供密钥。
步骤 8:测试集成
- 使用步骤 5 中的产品 ID 访问结账 URL(路径和查询参数格式取决于步骤 6 中生成的路由)。
- 使用测试卡完成结账:
4242 4242 4242 4242。 - 确认
polar webhook listen显示order.paid,且处理程序返回 2xx 状态码。 - 检查成功页面是否正确显示。
步骤 9:后续步骤
基本设置完成后,建议:
- 关联身份验证 - 创建结账时,传入已登录用户的
external_customer_id。 - 添加权益 - 许可证密钥、文件下载、Discord 角色。
- 转入生产环境 - 生产环境与沙盒相互独立:在 polar.sh 设置组织,重新创建产品(它会获得新的 ID),创建生产访问令牌和 Webhook 端点,并设置
POLAR_ENVIRONMENT=production。然后在控制面板中提交组织以供审核;在组织可以接受付款之前,结账会被阻止。