并排对比
项目PNLCS典型的商业计费系统
许可证费用免费,MIT每个安装每月收费
源代码完全开放,可审计加密或闭源
自行部署随处可用:Docker、VPS、主机面板账户可以,但需要许可证校验
扩展编写模块、发布、自己掌控应用市场和厂商条款
更新签名、一键完成、任何一步失败即回滚取决于厂商
从 WHMCS 沿用过来的内容
概念产品组、产品、可配置选项、服务、订单、账单、余额、工单和部门,行为都与 WHMCS 员工的预期一致。
API 操作名称API 使用 WHMCS 的操作名称和参数名称。大多数集成只需换一个地址和一组新凭据。
钩子add_hook('InvoicePaid', 1, fn) 的写法完全一样,许多钩子名称也与 WHMCS 相同。参数是 PNLCS 对象,出错的钩子会被记录并跳过。
模块服务器、支付网关、域名注册商和 SSL 供应商都是独立的模块,与 WHMCS 一样。
add_hook('InvoicePaid', 1, function (array $vars) {
$invoice = $vars['invoice']; // App\Models\Invoice
// ...
});# WHMCS
POST /includes/api.php action=GetClients
# PNLCS
GET /api/v1/getclients
X-API-Key: … X-API-Secret: …直接从 WHMCS 数据库导入
“实用工具 → 导入 WHMCS”会从你的 WHMCS 数据库读取客户、域名和服务。WHMCS 数据库只读不写,其中的任何内容都不会被更改。
- 1连接主机、数据库、用户名和表前缀。保存前先测试连接。
- 2映射字段每个 WHMCS 字段都对应一个 PNLCS 字段,名称一致时会自动给出建议。保存映射以便重复使用。
- 3选择模式仅新增、新增并更新,或仅更新,按邮箱或域名匹配。
- 4预览后执行前几行数据在 WHMCS 中的样子和 PNLCS 将要保存的样子。日志会显示哪些被新增、更新、跳过或失败,以及原因。
firstnamefirst_name
lastnamelast_name
companynamecompany_name
emailemail
countrycountry
phonenumberphone_number
先导入客户,再导入域名,最后导入服务。客户会获得一个随机密码,并通过“忘记密码?”自行设置;导入过程不会发送任何邮件。
产品、账单、工单和设置不会被导入:这些需要你在 PNLCS 中自行设置。
不停机切换
让 PNLCS 与 WHMCS 并行运行,在客户续费时逐步迁移。主机账户始终留在原来的服务器上。
- 01重建产品目录使用相同名称和价格的产品组和产品。
- 02连接相同的服务器账户已经在服务器上;从现在起由 PNLCS 管理。
- 03重新配置设置使用相同账户的支付网关、税费规则、邮件模板、员工和角色。
- 04迁移客户使用导入工具或手动迁移。在 Panelica 或 Proxmox 上,关联服务器上已有的账户。
- 05把链接指向 PNLCS计费地址、客户链接和注册表单。如果可以,把旧地址重定向过来。
续费时迁移每位客户在 WHMCS 续费到期时迁移。风险最低。
一次性迁移在一个维护窗口内迁移所有客户,到期日保持一致。