Whmcs是一款优秀的主机在线销售系统。虽然是使用php开发的,但是由于是商业软件,它使用ioncube对所有的php代码进行了加密。这样一来就无法在原有的代码基础上直接进行二次开发。
不过Whmcs开发人员为开发者预留了大量的API接口,可以很方便的进行功能扩展和定制http://docs.whmcs.com/API。这些接口可以通过两种方式进行调用。一种是php程序在whmcs目录内直接传递参数来调用localAPI函数,适宜于为whmcs开发各种模块或者hook;另外一种是通过web service方式,使用http接口来传递参数调用http://yourdomain(host)/includes/api.php
,这种方式适宜于不同系统之间的集成。如果使用web service接口,还有一个好处就是可以使用各种开发语言。
以下是一个使用内部方式来调用API的例子。
<?php
/***********************
这个代码可以用于解密whmcs内部存储的各类密码。
如果忘了某个管理用户的密码,可以先在数据库里找出加密后的密码,然后用该方式还原密码。
***********************/
// 需要引用这些内部函数库
require("dbconnect.php");
require("includes/functions.php");
require("includes/clientareafunctions.php");
// API命令参数
$command = "decryptpassword";
// whmcs的超级管理员账号
$adminuser = "admin";
//whmcs内部存贮的各类密码,可以从数据库直接查出来
$values["password2"] = "xxxxxxxxxxxxxxxxxxxxxxxxx";
//调用内部函数,返回一个array
$results = localAPI($command,$values,$adminuser);
// 打印这个array
print_r($results);
?>
使用外部方式调用API的样例很多,Whmcs官方网站上就提供了三个完整的php例子。
- NVP格式:Sample NVP Code
- XML格式:Sample XML Code
- JSON格式:Sample JSON Code
网上还有很多热心人将这些web service api封装成不同的语言库。 Python client library