如何使用WHMCS LocalAPI(InternaAPI)
嗨 我在使用WHMCS LocalAPI时遇到问题 WHMCS文档非常差,并且不清楚此问题 当我运行此代码时,会出现空白页,并且发生任何事情
<?php
require('../init.php');
require('../includes/api.php');
$command = 'AddOrder';
$postData = array(
'clientid' => '1',
'domain' => array('domain1.com'),
'billingcycle' => array('annually'),
'domaintype' => array('register',),
'regperiod' => array(1),
'nameserver1' => 'ns1.demo.com',
'nameserver2' => 'ns2.demo.com',
'paymentmethod' => 'zarinpalgw',
);
$adminUsername = 'myadminname'; // Optional for WHMCS 7.2 and later
$results = localAPI($command, $postData, $adminUsername);
print_r($results);
?>
我希望在运行此代码后添加订单 外部API速度很慢,由于某些原因(例如: 我有一个动态IP,并且外部API与静态IP一起使用,因为必须在WHMCS->常规设置->安全性
中识别IP答案 0 :(得分:0)
示例中的Internal API代码看起来应该可以工作。暂时启用PHP错误可以帮助缩小导致此问题(Setup > General Settings > Other > Display Errors)的确切原因,尽管我认为这是由于您在PHP文件中初始化WHMCS环境的方式所致。
WHMCS提供了有关构建自定义页面的特定准则,这似乎是您在提供的示例中尝试执行的操作。自定义PHP文件必须位于WHMCS根目录中,但是require('../init.php');
表示您的脚本当前位于子目录中。您也不应该需要api.php,因为init.php已经在处理它。 将脚本移至WHMCS根目录并注释掉require('../includes/api.php');
行,有望解决空白页问题。
请注意::您提供的示例不会显示正常的WHMCS客户端界面,也不会检查用户是否已登录。如果您要使用此功能,那么您也需要可以创建具有与本机WHMCS客户区页面相同的界面和功能的页面。以下是WHMCS在其creating client area pages指南中提供的示例代码的略微修改版本:
<?php
// Define WHMCS namespaces
use WHMCS\ClientArea;
use WHMCS\Database\Capsule;
// Initialize WHMCS client area
define('CLIENTAREA', true);
require __DIR__ . '/init.php';
$ca = new ClientArea();
$ca->setPageTitle('Your Page Title Goes Here');
$ca->addToBreadCrumb('index.php', Lang::trans('globalsystemname'));
$ca->addToBreadCrumb('mypage.php', 'Your Custom Page Name');
$ca->initPage();
// Uncomment to require a login to access this page
//$ca->requireLogin();
// Uncomment to assign variables to the template system
//$ca->assign('variablename', $value);
// Code to run when the current user IS logged in
if ($ca->isLoggedIn()) {
$clientName = Capsule::table('tblclients')->where('id', '=', $ca->getUserID())->pluck('firstname');
$ca->assign('clientname', $clientName);
// Code to run when the current user is NOT logged in
} else {
$ca->assign('clientname', 'Random User');
}
// Setup the primary and secondary sidebars
Menu::addContext();
Menu::primarySidebar('announcementList');
Menu::secondarySidebar('announcementList');
// Define the template filename to be used (without the .tpl extension)
$ca->setTemplate('mypage');
// Display the contents of the page (generated by the Smarty template)
$ca->output();