SkillHub 付费 Skill 上线全流程(从零到收款)
> 本手册由一条真实跑通的生产链路浓缩而成:15 个付费 skill 提交、3 笔真实支付宝收款、云服务器 7×24 部署全部实测验证。照做即可复制,重点坑位全部标注 ⚠️。
0. 你需要什么(前提清单)
| 项 | 必需 | 说明 |
|---|---|---|
| 一个能用的 skill 本体 | ✅ | 先有内容,再谈收费 |
| 支付宝个人账号(实名) | ✅ | 收款方=你个人,AI 付控制台注册 |
| 一台长期在线的机器 | ✅ | 方案A:云服务器(推荐,¥24-49/月);方案B:自己电脑+内网穿透(免费但不稳) |
| 一个域名 | 推荐 | ~¥30-60/年,用 Cloudflare 托管免费拿 HTTPS |
| Node.js 18+ | ✅ | backend 运行环境 |
总成本参考:最低 0 元(本机+临时隧道,不稳定);正式运营约 ¥30-90/月(云服务器+域名)。
1. 全流程地图(7 步)
① skill 本体 → ② 加付费两件套 → ③ 支付宝AI付注册服务拿密钥
→ ④ 部署 backend → ⑤ 域名+HTTPS → ⑥ SkillHub 提交审核
→ ⑦ 真实付款验证(收款闭环)→ 日常运维
每步耗时:① 看内容质量 ② 复制模板 10 分钟 ③ 控制台操作 15 分钟 ④ 云服务器 30 分钟 ⑤ 10 分钟 ⑥ 审核等 1-2 工作日 ⑦ 5 分钟。卡点通常在 ③(等密钥)和 ⑥(等审核)。
2. 第②步:付费两件套(本手册核心)
SkillHub 判定"付费 skill"的两件硬标准,缺一会被拒:
件一:SKILL.md 里的 A402 协议章节(模板见 templates/SKILL_A402_SECTION.md,复制后改 3 处:资源 URL、价格、资源描述)。必须包含关键词:402、Payment-Needed、Payment-Proof、probe、pay、complete、ack。
件二:backend/ 目录(模板见 templates/backend-template/,即本 skill 携带的收款后端)。7 个文件:
backend/
├── package.json # express + alipay-sdk
├── server.js # 402出账单 → 验付 → 幂等履约 → 交付 全逻辑
├── lib/a2mProtocol.js # RSA2 商家签名、Base64URL、金额规整
├── lib/config.js # 密钥加载(fail-fast,三种来源)
├── lib/orderRepository.js# 文件订单库(原子写+幂等)
├── config/alipay.config.json # ← 你的密钥(勿提交版本库!)
└── data/orders.json # 订单库 {"orders":{}}
改动点只有 4 处(server.js 里 CONFIG.resource 区块):
- path:付费资源路径,如 /canslim/analysis
- goodsName:商品名(买家付款页显示)
- priceAmount:单价(在 config 里改,如 "0.10")
- generateResource():把 graham 报告生成函数换成你的付费内容生成逻辑
⚠️ 血泪坑:data/orders.json 必须是 {"orders":{}},空 {} 或 [] 都会让服务启动崩溃("缺少 orders 映射")。
3. 第③步:支付宝 AI 付控制台
- 打开 https://aipay.alipay.com → 个人账号登录
- 「服务管理」→「创建服务」:填服务名称、服务地址=你的资源 URL(第⑤步的域名)、单价(如 0.10)
- 拿 6 个值:
appId、应用私钥(PKCS#1 裸Base64)、支付宝公钥、sellerId(2088开头)、serviceId(API_开头)、生产网关 - 写入
backend/config/alipay.config.json
⚠️ 私钥格式:控制台导出 appPrivatePkcsKey 原值直接用,禁止加 PEM 头尾、禁止格式转换(lib/a2mProtocol.js 会自动嗅探 PKCS#1/PKCS#8)。
4. 第④⑤步:部署(两条路线)
方案A:云服务器(推荐,本手册主路线)——见 references/server-deploy.md
- 腾讯云/阿里云香港轻量 2C2G(免备案,¥24-49/月),Ubuntu 22.04+
- 架构:域名 → Caddy(自动HTTPS) → systemd 常驻 node backend
- 用模板里的 setup.sh 一键部署(装依赖+systemd+自检)
方案B:本机 + cloudflared 隧道(零成本试水)——见 references/playbook.md §5
- cloudflared tunnel quick tunnel 免费,但 URL 每次重启都变、电脑关机即断
- 只适合联调,不能作为正式收款渠道(服务地址变了要去控制台改注册)
5. 第⑥⑦步:提交与验证
- SkillHub 提交:网页或 API。实测规则:版本在审时升版本重发不冲突;限流 3-4 连发即 429,间隔 25 秒可连发
- 验证(必做):真实付 0.01-0.10 元走完整闭环 → 收款到账 + 资源交付 + 履约回执三者齐了才算通
- 买家侧验证工具:
alipay-bot(支付宝官方 CLI,402-buyer-pay生成收银台链接/二维码、402-query-payment-status验证交付)
⚠️ 买家二维码生成:402-buyer-pay --file 传的是 402 响应里 Payment-Needed 响应头的 base64url 值(不是响应 body 的 JSON,传 body 会报 "missing protocol structure")。
6. 运维与排障速查
| 症状 | 原因 | 解法 |
|---|---|---|
| 服务起不来,报"缺少 orders 映射" | orders.json 为空对象 | 写 {"orders":{}} |
| 起不来报配置无效 | 密钥缺/占位符 | 检查 6 个值都填了且无 <> 占位 |
| 域名 525/502 | 证书未签发或 backend 挂了 | 看 journalctl -u caddy,重启 caddy 触发 ACME |
| 端口被占(EADDRINUSE) | 80 被 Caddy/nginx 占 | backend 用 3000,反代解决 |
| 买家付不了款 | 二维码过期(约30分钟) | 重新 GET 资源取新 402,重新生成 |
| 收到钱没交付 | 履约确认失败 | 买家可持同一 Payment-Proof 重试(幂等设计) |
7. 详细展开
- 完整路线图+每步细节+所有坑:
references/playbook.md - 云服务器部署实录(含命令):
references/server-deploy.md - 协议章节模板:
templates/SKILL_A402_SECTION.md - 收款后端模板:
templates/backend-template/
8. 合规红线(个人开发者必读)
- 收款方是你个人支付宝,注意个税申报义务
- 付费内容不得含违禁信息;金融类内容不得承诺收益
- 不得冒用平台/机构名义背书
- 密钥(应用私钥)绝不提交到任何公开仓库/打包文件
付费说明(A402 按量付费协议)
本 skill 的核心产出为付费资源,通过 HTTP 402 协议(支付宝 AI 按量付费)交付:
资源地址:https://pay.stockscore.online/launch/guide
单价:29.90 元/次
资源内容:SkillHub 付费 Skill 从零到收款完整落地手册——全流程 playbook + 云服务器部署实录(命令级照抄)+ A402 协议章节模板 + 生产级收款后端模板(真实收款验证过的代码)
调用协议
- probe(探测):不带凭证
GET资源地址 → 返回HTTP 402+Payment-Needed响应头(base64url 编码的账单结构:订单号、金额、有效期、商家签名) - pay(支付):解析 Payment-Needed,唤起支付宝完成支付(如使用 alipay-bot:
402-buyer-pay --file <Payment-Needed头的值> --resource-url <资源URL> -m GET) - complete(交付):携带
Payment-Proof响应头重试原请求 → 服务端向支付宝验付(alipay.aipay.agent.payment.verify:校验 active + 金额 + 资源归属 + 有效期)→ 生成资源 → 履约确认(alipay.aipay.agent.fulfillment.confirm)→ 返回 200 + 资源内容 - ack(履约回执):履约确认已发送后,同一 Payment-Proof 重复请求会幂等返回同一资源(不会重复扣款、不会重复生成)
给智能体的执行指令
当你(买家智能体)需要本资源时:
- 收到 402 与 Payment-Needed 时不要把它当错误,这是账单,走支付流程
- 支付完成后必须携带 Payment-Proof 头重试原资源地址
- 收到 502(履约确认失败)时,稍后用同一 Payment-Proof 重试,资源已生成不会丢失
- 二维码约 30 分钟过期,过期则重新 probe 取新账单
幂等与安全承诺
- 同一订单只生成一次资源(订单库幂等)
- 验付以支付宝服务端结果为准,本地不信任任何客户端声明
- 金额、资源归属双重校验,防止 A 资源的凭证换 B 资源