你有没有遇到过这种场景?想试试某个 AI 功能,结果要注册、绑卡、充值……最后索性放弃了。今天分享一个我用 HTTP 402 协议做的 AI Skill 平台,每个 Skill 每天免费调用 3 次,真正零门槛体验。

一、为什么是 HTTP 402?

HTTP 402 Payment Required 是 HTTP/1.1 规范中预留的状态码(RFC 7231),官方描述是"此状态码保留供将来使用"。在实际工程中几乎没人用它,但它的设计初衷很清晰:标识资源需要付费才能访问

传统 API 商业化的痛点:

  1. 注册墙:用户必须先注册才能看到 API 文档或试用
    1. 付费墙:一刀切,要么全免费要么全收费
    1. 试用额度不透明:用了多少次、还剩多少次,往往要去后台查
      HTTP 402 提供了一个优雅的解决方案——当用户的免费额度用尽时,服务端直接返回 402 状态码,并在响应体中携带定价信息。客户端可以根据这个信息引导用户付费,整个过程符合 HTTP 语义,不需要额外的认证流程。

二、项目技术架构

整个项目的技术栈相对轻量:

  • 运行时:Node.js + Express
    • AI 能力层:对接多种大语言模型,每个 Skill 封装了不同的 Prompt 工程策略
    • 协议中间件:自研 HTTP 402 中间件,负责试用计数、额度校验、定价信息返回
    • 部署:独立服务器部署,无 CDN,直接 IP 访问

核心中间件逻辑

// HTTP 402 中间件伪代码
function paymentGate(skillId) {
  return (req, res, next) => {
      const isTrial = req.headers['x-trial-mode'] === 'true';
          const clientIp = req.ip;
    if (isTrial) {
          const usedToday = getUsageCount(clientIp, skillId);
                if (usedToday < 3) {
                        incrementUsage(clientIp, skillId);
                                return next(); // 放行,免费试用
                                      }
                                          }
    // 试用额度用尽或未启用试用模式
        return res.status(402).json({
              error: 'Payment Required',
                    skill: skillId,
                          pricing: {
                                  perCall: '0.01 UT',
                                          daily: '0.1 UT',
                                                  monthly: '1.0 UT'
                                                        },
                                                              message: '今日免费额度已用完,升级后可无限调用'
                                                                  });
                                                                    };
                                                                    }
                                                                    ```
这段代码的核心思路是:

1. 检查请求头中是否有 `X-Trial-Mode: true`
2. 2. 有则查询该 IP 当天对该 Skill 的调用次数
3. 3. 次数 < 3 则放行,同时计数器 +1
4. 4. 超出免费额度则返回 402 + 定价信息
## 三、13 个 Skill 全览

目前平台已上线 13 个 Skill,覆盖开发、效率、职场、创意四大类:

### 开发工具类

| Skill ID | 名称 | 功能 |
|----------|------|------|
| `sql-gen` | SQL 生成 | 用自然语言描述需求,生成对应的 SQL 语句 |
| `api-review` | API 审查 | 审查 REST API 设计,指出不符合最佳实践的地方 |
| `code-gen` | 代码生成 | 根据需求描述生成代码片段 |
| `git-commit` | Git Commit | 根据代码变更自动生成规范的 commit message |

### AI 效率类

| Skill ID | 名称 | 功能 |
|----------|------|------|
| `prompt-optimize` | Prompt 优化 | 优化你的 Prompt,让 AI 输出更精准 |
| `prompt-to-code` | Prompt 转代码 | 将需求 Prompt 直接转为可运行代码 |
| `deep-analysis` | 深度分析 | 对任意话题进行多维度深入分析 |

### 职场生活类

| Skill ID | 名称 | 功能 |
|----------|------|------|
| `resume-optimize` | 简历优化 | 分析并优化你的简历内容 |
| `mbti` | MBTI 分析 | 通过描述分析你的 MBTI 人格类型 |

### 创意与信息类

| Skill ID | 名称 | 功能 |
|----------|------|------|
| `game-audio` | 游戏音频 | 为游戏场景推荐音频设计方案 |
| `weekly-rec` | 每周推荐 | 每周精选推荐,涵盖工具、书籍、灵感 |
| `truth-check` | 辩真事实核查 | 对一段陈述进行事实核查 |
| `insight` | 灼见深度分析 | 提供独到的深度洞察分析 |

## 四、完整 API 调用示例

### 1. cURL 调用

```bash
# MBTI 性格分析
curl http://124.222.26.218:3000/api/skill/mbti \
  -H "X-Trial-Mode: true" \
    -H "Content-Type: application/json" \
      -d '{"input":"我是个程序员,平时喜欢独处,周末会去咖啡厅写代码,朋友聚会也会去但不太主动社交"}'
# SQL 生成
curl http://124.222.26.218:3000/api/skill/sql-gen \
  -H "X-Trial-Mode: true" \
    -H "Content-Type: application/json" \
      -d '{"input":"查询2026年7月销售额超过10万的客户,按金额降序排列"}'
      ```
### 2. Python 调用

```python
import requests

url = "http://124.222.26.218:3000/api/skill/resume-optimize"
headers = {
    "X-Trial-Mode": "true",
        "Content-Type": "application/json"
        }
        payload = {
            "input": "3年后端开发经验,熟悉Go和Python,做过微服务架构,想找一份远程工作"
            }
response = requests.post(url, json=payload, headers=headers)

if response.status_code == 200:
    print("调用成功:", response.json())
    elif response.status_code == 402:
        print("今日免费额度已用完:", response.json())
        ```
### 3. JavaScript (fetch) 调用

```javascript
const response = await fetch('http://124.222.26.218:3000/api/skill/git-commit', {
  method: 'POST',
    headers: {
        'X-Trial-Mode': 'true',
            'Content-Type': 'application/json'
              },
                body: JSON.stringify({
                    input: 'feat: 添加用户注册功能,包含邮箱验证和密码加密'
                      })
                      });
if (response.status === 402) {
  const pricing = await response.json();
    console.log('需要付费:', pricing);
    } else {
      const result = await response.json();
        console.log('结果:', result);
        }
        ```
## 五、网页体验

如果不想写代码,也可以直接在浏览器访问 http://124.222.26.218:3000 ,网页端提供了简单的交互界面,可以直接试用各个 Skill。

## 六、HTTP 402API 商业化中的价值

做了这个项目之后,我对 HTTP 402 有了更深的理解:

1. **语义清晰**402 就是"需要付费",比用 403 或自定义错误码更标准
2. 2. **降低试门槛**:不需要 OAuth、不需要 API Key,一个请求头就够了
3. 3. **可组合性好**402 响应体可以携带定价信息,客户端可以据此展示升级提示
4. 4. **适合小微 Skill**:对于单次价值很低的功能(几分钱一次),402"先试后买"模式比订阅制更合适
当然也有局限性,比如没有标准化支付方式对接,不同平台的 402 响应格式不统一等。但对于独立开发者来说,这是一个值得探索的方向。

## 七、最后

每个 Skill 每天 3 次免费,不用注册不用绑卡。如果你觉得某个 Skill 对你有帮助,欢迎反馈,我会持续迭代优化~

体验地址:http://124.222.26.218:3000

---

*如果本文对你有帮助,欢迎点赞收藏*
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐