SMM 面板 API 对比:JAP、CheapSMMPanel 与 NotPanel
根据公开合同比较三个 SMM API 的字段、重试、webhook 和 HTTP 错误,只讨论文档实际公布的内容。

我打开了三个公开 API 页面:JustAnotherPanel、CheapSMMPanel 和 NotPanel。这里比较的是合同,不是价格或目录大小。
两个页面重复了熟悉的 v2 形式。真正的差异从第一个 POST 之后开始:字段名称、重试身份、webhook 和 HTTP 状态。
什么会让你不敢把子面板接到新的 upstream?
点选一项。只保存在这台设备上——不是编造的问卷。
对比表
三个 API 都使用带表单和 JSON 响应的 v2 风格 POST。之后它们就不能直接互换了。
JAP 客户端要接 CheapSMM,必须重新映射字段。要在 NotPanel 创建订单,还必须提供 request_id;这是有意的差异。
同一个示例订单。同一张复印件。

公开页面展示了演示订单以及 list、add、status、balance 流程。这足以发出第一个请求,却没有说明网络失败时会发生什么。
示例只能证明语法,不能证明重试行为、签名事件或失败处理。发布集成前,请先检查公开合同。
字段名称不是小事
| 用途 | JAP / NotPanel | CheapSMMPanel |
|---|---|---|
| 认证 | key | api_token |
| 目录 | action=services | action=packages |
| 服务 ID | service | package |
| 起始数量 | start_count | start_counter |
| 状态 | In progress / in_progress | Title case in examples |
CheapSMM 把迁移描述得很简单,但修改认证、目录、服务和数量字段会触及每个调用点。只换基础 URL 不是迁移计划。
状态字符串同样重要。如果对账程序把所有非 completed 值都当作可退款,字段名称差异就会变成资金损失。
为什么 NotPanel 在关键地方更强
这些是可以验证的合同差异,不是关于价格或目录规模的承诺。
迁移 reseller 流程前,每一点都可以对照公开参考进行测试。
超时不是失败

公开示例客户端没有展示由调用者提供的标识符。NotPanel 要求每个 add 都有 request_id:相同密钥和相同请求体返回原 ID,不同请求体会被拒绝。
在重试循环之外只生成一次密钥。超时意味着结果未知,不代表订单一定没有发生。
超时是未知结果。只有服务器能识别的重试才是安全重试。
Polling 还是签名信封

JAP 和 CheapSMM 的访客 API 页面没有记录出站 webhook。默认集成是不断查询 status,直到字符串改变。这能工作,但会把限额花在没有变化的订单上。
NotPanel 提供 webhook.add、list 和 remove。每次投递都包含原始请求体的 HMAC-SHA256、时间戳和命名事件。私有及 link-local URL 会被拒绝;投递至少一次,因此处理器仍必须幂等。
相关方法见 webhook 参考 · HMAC 指南.
状态码,而不是带 error 的 200
克隆规范可能返回带 error 对象的 HTTP 200。只相信状态行的重试库会把它当成成功。
限额分为 IP、密钥和等级层。创建重试循环前,先阅读错误和 rate-limit 参考。
结论很简单:用明确合同自动化,不要自行发明缺失的一半。迁移流量前先阅读公开文档。 notpanel.com/developers.
两个资金风险有独立指南:超时重试,以及 webhook 与 polling。
FAQ
JustAnotherPanel 有 reseller API 吗?
有。公开 v2 页面展示 services、add、status、refill、cancel、balance 的 key 和 action。但没有记录 webhook、幂等性、HTTP 错误目录或限额响应头。
JAP API 和 NotPanel API 有什么区别?
基本 v2 形式相似,但 NotPanel 要求 request_id,记录签名 webhook,返回明确错误状态,并公布限额响应头。JAP 记录了更多特殊 add 字段和 cancel。
CheapSMMPanel 使用和 JAP 一样的 API 吗?
不一样。访客文档使用 api_token、action=packages、package 和 start_counter。JAP 客户端不能原样工作。
SMM 面板支持 webhook 吗?
有些支持,但很多公开 v2 页面没有提到。如果文档没有说明签名,就把收到的 POST 当作不可信。
NotPanel 为什么要求 request_id?
超时的 add 结果未知。没有调用者提供的密钥,重试可能造成第二次扣款;相同密钥和请求体会返回原订单。
可以把已有的 JAP 客户端指向 NotPanel 吗?
读取操作通常只需检查 URL 和状态大小写。add 需要 request_id,cancel 未开放,特殊字段必须有文档支持。