知识库

通过 WHMCS 销售 Zinn® 主机

在 WHMCS 中安装免费的 Zinn Digital® 配置模块:API 密钥及其所需的七项权限、模块目录应放置的位置及为何其名称至关重要、产品字段,以及各个 WHMCS 按钮的实际作用。

Zinn Digital® 模块将 WHMCS 自身的按钮转化为我们平台上的实际操作。一笔订单会为您客户的主机完成开通。WHMCS 的逾期账单自动化功能会将其暂停。将账单标记为已支付则会解除暂停。取消操作会安排删除计划。并且您的客户会在其客户中心获得一个登录到主机面板按钮,点击即可直接登录。

它是免费的,采用 GPL-2.0-or-later 许可协议,并且对我们的平台没有任何特权路径:其发出的每一次调用都是一个已记录在文档中的端点,您完全可以使用自己的 API 密钥自行调用。

开始之前

您需要两样东西,而第二样往往容易被人忽略。

  1. 一个带有有效方案的 Zinn® 分销商账户。请在 zinndigital.com 注册并开启分销功能。
  2. 一个带有建站配额的分销方案。您客户订购的站点会计入您的方案配额中,因此您需要一个尚有余量的方案。

⚠️ “测试连接”无法告诉您订单是否会成功。它只读取您的方案而不开通任何资源,因此它会报告一个状态良好且为 active 但尚无法销售任何东西的账户。如果您的首笔订单失败并提示 “This organization has no hosting plan, so it cannot host a site yet”(该组织没有主机方案,因此尚无法托管站点),这就是原因所在——请购买或扩容您的分销方案并重新提交订单。模块本身没有任何问题。

1. 创建 API 密钥

在您的 Zinn® 控制面板中,打开 API 密钥 并创建一个恰好具备以下十一项权限的密钥:

权限所需原因
org.create在客户首笔订单生成时创建其 Zinn® 账户。
org.read读取您的客户账户。
sites.create开通站点。
sites.view读取服务及其用量。
sites.delete终止服务。
reseller.view列出您已销售的内容,并读取磁盘和带宽。
reseller.provision暂停、解除暂停、为客户办理登录、设置其方案以及更改其套餐包。
billing.view在执行升降级之前读取其所需费用。
sites.manage通过按钮清除缓存并创建备份。
sites.panel_access更改 WordPress 管理员密码。
hosting.php.manage在升降级时切换 PHP 版本。

⛔ 请勿授予 reseller.manage。粘贴在账单面板中的密钥应当具备因未付款而对客户进行暂停以及为其办理登录的能力。它不应具备读取和重写您自身支付网关凭据的能力。reseller.provision 的存在就是为了让您无需授予更大范围的权限。 ⛔ org.create 是必选项。若缺少该权限,模块可以读取您的账户却无法创建新账户,因此“测试连接”能够通过,但首笔订单会返回 403。 ⛔⛔ 请授予表中的全部权限,并请注意“测试连接”无法指出您是否有遗漏。它只读取您的分销方案而不开通任何资源,因此对于缺少其中任何权限的密钥,它都会显示为绿色正常。取而代之的是,数月之后某位客户在执行该缺失权限所涵盖的那项操作时,您会收到一个 403 错误。

2. 安装模块

  1. 下载模块并解压。
  2. 将 zinn 目录上传至您的 WHMCS 安装路径中,使模块文件位于 modules/servers/zinn/zinn.php。

⛔ 该目录必须命名为 zinn。WHMCS 是根据开通模块的目录名称来推导其函数名称的,因此将其重命名为 zinn-whmcs 或 zinndigital 会导致该模块虽能在 WHMCS 中列出并允许您选择,但随后绝不会被调用——且各处都不会有任何报错。压缩包解压后已经是正确的名称;切勿重命名即可。

3. 添加服务器

在 WHMCS 中:系统配置 → 系统设置 → 服务器 → 添加新服务器。

  • 名称:任意,例如 Zinn Digital®
  • 主机名:api.zinndigital.com
  • 类型:Zinn Digital®
  • 密码:您在第 1 步中获取的 API 密钥

⛔ 密钥应填入 密码 字段,WHMCS 会对其进行加密存储。切勿将其放入产品配置选项中——那些在数据库中是明文形式且对每位管理员可见,而此凭据能够创建和销毁您客户的主机服务。

点击 测试连接。它会发起一次真实的调用并报告我们平台的返回结果,而不仅仅是检查字段是否已填写。

4. 创建产品

前往 系统配置 → 系统设置 → 产品/服务,然后将 模块设置 设为您刚刚添加的服务器。各字段说明如下:

字段是否必填字段说明
产品系列是您正在销售的 Zinn® 系列 — mainstream(托管型 WordPress)、footprint_free、wordpress、linux、cloud、agency、app_hosting、ai_hosting、lms_hosting、managed_database、vector_hosting、zinn_compute、fleet_linux、fleet_enterprise、mail 或 reseller。
技术栈是构建的内容:wordpress(默认)、woocommerce、php、static、node、one_click、headless_cms、nextcloud 或 owncloud。
应用程序否仅适用于 one_click 和 headless_cms 技术栈 — 指定要安装的应用程序。在任何其他技术栈上指定都会被拒绝,因为这些技术栈已经决定了所要安装的内容。
PHP 版本否例如 8.3。留空则使用该系列的默认值。若指定了该系列不提供的版本,系统将拒绝并列出所支持的版本列表。
方案代码是该产品销售的 Zinn® 方案。GET /v1/reseller/prices 会列出您的方案。未包含方案代码的订单将被拒绝 — 请参阅下方警告。
账单周期否monthly(默认)或 annual — 为该客户生成您的批发订单项时所采用的周期。您向自身客户收取的费用在 WHMCS 产品上设置,不受此项影响。

⛔⛔ 方案代码为必填项,未包含该代码的订单将被故意拒绝。在 2026-09-01 之前,该字段仅具装饰性且没有任何程序读取它,因此模块订购的主机会完全不带任何方案 — 并且由此产生的所有后果都是隐蔽的。由于您的批发对账单是根据客户生效中的订阅生成的,因此账单中不存在该服务的明细行,只要该服务处于运行状态您就完全不会收到账单;您的客户无法继承任何配额,因此其站点不会应用任何磁盘或文件配额限制;并且更改套餐包没有任何可供更改的内容,导致您售出的升级无法执行。而在此期间,站点的开通和对外提供服务均表现得完全正常。

现在的模块则会直接拒绝该订单,因为模块无法安全地推测方案:任何推测都可能会在您未选择且可能未定价的方案上开通主机,并且 — 与您可以立即获知的拒绝操作不同 — 这种情况如果暴露出来,也往往要等到对账单送达时才会显现。

将 自动设置 设为您偏好的选项即可 — 该模块针对 WHMCS 服务 ID 具有幂等性,因此重试开通将返回同一站点,而不会就第二个站点向您收费。

各 WHMCS 操作的作用

WHMCS 操作我们平台执行的操作
创建创建客户的 Zinn® 账户(或复用其已有的账户)并开通其站点。
暂停因未付款而将站点置于保留状态。内容予以保留;不删除任何数据。
解除暂停解除您的保留状态。
终止安排站点的删除计划,并带有宽限期。具体日期会显示在客户中心。
用量更新每天更新一次所有服务的磁盘和带宽数据。
登录到主机面板打开一个一次性、单次使用的登录链接,直接进入您客户的控制面板。
更改套餐包对服务进行升降级。迁移套餐包,若新产品指定了 PHP 版本则一并迁移 PHP 版本。
更改密码设置 WordPress 管理员 密码。在没有此类账户的技术栈上,该输入框不会显示。
续费确认服务仍然存在。Zinn® 主机服务是持续性的,因此没有需要延期的远端期限。
同步用量 / 清除缓存 / 创建备份管理员服务页面上的按钮。您的客户会在其客户中心获得清除缓存和创建备份按钮。
服务选项卡状态、方案、磁盘、带宽、任何已安排的删除计划,以及何人执行了暂停操作。
导入ListAccounts 会读取每一页,因此导入过程绝不会在第一页静默中止。

升降级:谁向谁收费

无论是在订购还是升级时,Zinn® 绝不会向您的客户开具账单。您通过 WHMCS 向他们收费;我们在您的批发对账单上向您收费。因此,执行“更改套餐包”会变动您客户的权益以及您下一期对账单上的款项,且不涉及任何扣卡操作 — WHMCS 此时已向您的客户完成扣款并计算了其自身的按比例分摊费用。

客户的第二个服务。如果在同一方案下,它是该方案自身站点配额内的又一个站点,不再额外授予任何配额。如果是在不同方案下,该操作将被拒绝:替换生效中的方案将导致两项服务中的一项无法计费。您可以将这两项服务在同一方案下销售,或者在 WHMCS 中将该客户设立为单独的客户档案。

“更改密码”仅适用于 WordPress。Zinn® 主机没有统一的“服务密码” — 您的客户通过登录按钮即可进入其面板 — 并且 php 或 static 站点没有可供更改的应用程序账户。WHMCS 会完全隐藏该输入框,而不是显示一个无法正常工作的输入框。

切勿混为一谈的三种返回情况

  • “解除暂停”可能会返回拒绝。这表明该站点是由我们的风控团队暂停的,而非由您暂停,任何账单面板均无权解除。返回的消息中会注明这一点;请向您的管理员展示该信息,切勿反复重试。
  • “终止”只是安排删除计划,并不立即执行删除。返回的日期格式为 pending_deletion_at,并且会显示在客户中心。在客户数据尚未被抹除时告知其数据已消失,比什么都不告诉他们还要糟糕。
  • 磁盘和带宽可能显示为未知,未知并不代表零。当我们无法获取读数时,模块会保留该数值不变而不是写入 0 — 否则对于我们尚未获取到读数的站点,WHMCS 会向您的客户显示一个看似安心的空白用量条。

故障排查

“测试连接”通过,但首笔订单因权限错误而失败。 API 密钥缺少 org.create 权限。模块必须先创建客户的账户,然后才能为其创建站点。

订单失败并提示组织没有主机方案。 您的分销方案已无剩余的建站配额,或者您尚未持有该方案。请参阅上方的开始之前。

订单失败并提及技术栈。 产品上的 技术栈 字段为空,或指定了我们不构建的内容。除非您销售的是其他内容,否则请将其设置为 wordpress。

取消操作持续失败。 请确保您使用的是 1.0.0 或更高版本的模块。早期的构建版本未发送删除确认信息,导致所有终止操作均被拒绝,从而使服务保持运行并持续计费。

指明了字段的拒绝提示。 我们的验证错误会在消息后的括号内注明字段及原因,例如 (php_version: 7.2 is not offered on this product line)。这才是可据以采取行动的关键部分 — 其前方的语句是故意设定为通用表述的。

验证您的下载

每个压缩包均通过 TLS 从我们自有的主机名提供服务,绝不会重定向至第三方主机。其 SHA-256 校验和已标注在下载页面的下载链接旁。下载后请进行比对:

  • macOS 或 Linux:shasum -a 256 zinn-whmcs-1.0.0.zip
  • Windows:certutil -hashfile zinn-whmcs-1.0.0.zip SHA256

未使用 WHMCS?

我们还提供了 HostBill 模块以及适用于其他任何系统的单文件 PHP 客户端,两者均免费且均位于同一个下载页面。这些模块所使用的每个端点均可在 API 参考文档中找到。

博客最新动态

我们关于托管、SEO 和大规模网站运营的撰文。

来自托管层的 SEO 与外链建设:2026 年运营商视角

虚拟主机如何在 2026 年影响收录与链接资产传递(link equity):保持页面被有效索引、在建站前严格审查老域名、构建无痕迹(footprint)的外链,以及客观剖析底层基础设施在 SEO 方面的能力与局限。

阅读文章 →

让 WordPress 更快更安全:性能与插件核对清单

打造快速、安全的 WordPress 的实用核对清单:服务器级缓存、按站点设置的对象缓存、少数几个值得运行的插件、保持技术栈最新,以及绝不能进行缓存的 WooCommerce 页面。

阅读文章 →

如何在 2026 年选择托管型网站托管服务:购买者指南

究竟是什么将优质的托管服务与带控制面板的廉价主机区分开来——迁移、备份、隔离、真正的缓存以及诚实的扩展能力——以及如何在您做出决定之前对其进行评估。

阅读文章 →

阅读博客 →

仍需帮助?

每个套餐均包含技术支持,客服团队全天 24 小时在线,您可以用我们支持的任意 58 种语言与我们联系——我们将用您的语言为您解答。

联系支持团队 → 所有文章 →