症状
使用 WHMCS API 时,可能会遇到以下错误:
原因
此问题发生在从非 Web 上下文(例如命令行界面或定时任务)执行必需的许可检查时,且服务器的出站 IP 地址与许可的 IP 地址不一致。
WHMCS 提供外部 API 和内部 API 两种类型。此错误通常是由于未选择正确的 API 导致:
-
内部 API:应在 WHMCS 文件、钩子、模块及自定义页面等 Web 上下文中使用。
-
外部 API:应在非 Web 上下文或其他任意位置使用。
解决方法
在大多数情况下,日常使用管理区域(Web 上下文)可确保短期非 Web 上下文使用的许可响应有效。若仍出现此错误,可能是您的安装未进行日常使用。
对于非 Web 上下文,建议通过远程 HTTP 请求调用网站 API,而非使用 localAPI
辅助函数。这可确保调用时基于网站请求执行必需的许可检查(许可检查将引用网站特定 IP 地址,而非服务器通用出站 IP 地址)。
具体操作需修改脚本,向以下 API 端点发送 HTTP 请求:
https://domain.com/whmcs/includes/api.php
(其中 domain.com
为许可有效域名,whmcs
为许可有效目录)