# 梦奈宝塔开通插件

插件 ID：`mengnai_bt`

插件名称：梦奈宝塔

该插件对接 `C:\Users\25764\Desktop\mnbt` 项目中的 `api/api.php`，通过 MNBT 官方接口完成主机或 CDN 的自动开通、管理和测试。

## 后台如何配置

1. 进入后台“开通接口”页面：`/admin/products/provision-plugins`。
2. 选择“梦奈宝塔”插件，点击“新建接口”。
3. 在开通接口里填写 `mnbt_url`、`api_key`、`bt_code`、`bt_secret` 等通用连接参数。
4. 点击接口表格里的“测试”，确认 MNBT 连接正常。
5. 进入后台产品管理，新建或编辑产品。
6. 自动开通类型选择“插件开通”，开通插件选择 `mengnai_bt`，开通接口选择刚才创建的接口。
7. 在产品“上游参数”中添加套餐参数，或点击“一键添加推荐参数”后按套餐修改值。

插件文件位于：

```text
backend/mode/provision/mengnai_bt/
```

## 开通接口连接参数

这些参数保存在“开通接口”里，可以被多个梦奈宝塔产品复用。

| 字段名 | 示例值 | 说明 |
| --- | --- | --- |
| `mnbt_url|MNBT站点地址` | `https://mnbt.example.com` | 梦奈宝塔站点地址，不需要带 `/api/api.php` |
| `api_key|MNBT API密钥` | `xxxxxxxx` | 对应 MNBT 请求字段 `mn_key` |
| `bt_code|宝塔开通代号` | `BT001` | 对应 MNBT 请求字段 `mn_bh` |
| `bt_secret|宝塔调用密钥` | `32位md5值` | 对应 MNBT 请求字段 `mn_keye`，即 `md5(ktmy + qmk)` |
| `mn_vs|插件版本` | `15` | MNBT 要求 `mn_vs >= 15`，不填默认 15 |

如果不想手动计算 `bt_secret`，也可以在上游参数中提供 `ktmy` 和 `qmk`，插件会自动计算 `md5(ktmy + qmk)`。

## 产品套餐参数

这些参数保存在产品“上游参数”里。字段名支持 `字段名|显示名`，字段值支持 `实际值|显示值`，插件会把 `|` 前面的实际值传给梦奈宝塔。

| 字段名 | 示例值 | 说明 |
| --- | --- | --- |
| `type|产品类型` | `2|主机` | `1` 为 CDN，`2` 为主机 |
| `webdx|网页空间MB` | `1024|1GB` | 传给 MNBT 的 `webdx` |
| `sqldx|数据库空间MB` | `512|512MB` | 传给 MNBT 的 `sqldx` |
| `sizemax|流量MB` | `10240|10GB` | 传给 MNBT 的 `sizemax` |
| `ymbds|域名绑定数` | `5|5个` | 传给 MNBT 的 `ymbds`，CDN 会由 MNBT 固定为 1 |
| `panel_url|用户面板地址` | `https://mnbt.example.com` | 实例详情中的面板入口，可选 |
| `username_prefix|账号前缀` | `qy` | 自动生成用户名前缀，可选 |
| `dqtime|固定到期` | `0` 或 `2026-12-31` | 可选；不填则按实例到期时间/购买周期计算 |
| `password|固定密码` | `不建议固定` | 可选；不填则每次自动生成随机密码 |

注意：插件类型开通不会传递产品组的 `node`、`area`、`product_group_node`、`product_group_area`。这些字段属于云服务器节点/区域选择，不会进入梦奈宝塔请求。

## 调用接口

插件会调用以下 MNBT 接口：

| 动作 | MNBT `gn` | 说明 |
| --- | --- | --- |
| 测试连接 | `cfif` | 验证 API 地址、密钥、宝塔代号和调用密钥 |
| 开通 | `kt` | 创建主机或 CDN |
| 同步状态 | `cfif` | 检查 API 可用性并返回当前实例用户名 |
| 打开面板 | 本地动作 | 返回 `panel_url` |
| 暂停 | `zt` | 暂停主机/FTP |
| 恢复 | `jc` | 解除暂停 |
| 同步到期 | `xf` | 设置上游到期时间 |
| 重置密码 | `czmm` | 重置 FTP 和控制面板密码，并同步写回本地实例密码 |
| 调整配额 | `zjmode` | 更新网页空间、数据库空间和流量 |
| 删除 | `tz` | 删除上游主机、FTP 和数据库 |

## 前端在哪里查看和管理

- 后台插件列表：`/admin/products/provision-plugins`
- 后台产品编辑：选择插件开通并绑定 `mengnai_bt`
- 前台产品页：插件的 `product-page/*.html` 会作为产品 Tab 展示
- 用户实例详情：仅展示 `audience: "user"` 或 `"both"` 的管理动作（打开面板、重置密码、同步状态）
- 后台实例详情：管理员可执行全部管理动作（含暂停、恢复、续费、配额、删除）
- 测试连接：在后台插件列表中填写 MNBT 参数后点击测试，或调用 `POST /v1/admin/products/provision-plugins/mengnai_bt/test`

## 开通成功后写入的数据

- `hostname`：MNBT 用户名
- `root_password`：MNBT 密码，加密存储
- `upstream_payload.provision_plugin.payload.mnbt_username`：MNBT 用户名
- `upstream_payload.provision_plugin.payload.mnbt_panel_url`：面板地址
- `upstream_payload.provision_plugin.payload.product_params`：实际传给 MNBT 的套餐参数

插件日志中会屏蔽 API 密钥、调用密钥和密码。
