-
<?php
-
/**
-
* 调用TEA加密算法,对所有Service目录下的类,都实例化之后调用。
-
* @author 肖江
-
* @filesource service/0
-
* @classname Json Server调用
-
* @copyright 2010-2-4
-
*/
-
class SjsonServer {
-
function __construct() {
-
self::$jsonDecode=new Btea();
-
}
-
function setKeyPasswd($domain) {
-
self::$serverInfo[‘keyPasswd’]=l(‘FmyRpc’)->$domain;
-
self::$domain=$domain;
-
}
-
/**
-
* 设置class 供外部使用
-
* @author 肖江
-
* @param $class
-
* @return unknown_type
-
*/
-
function setClass($class) {
-
self::$myClass=$class;
-
return $this;
-
}
-
/**
-
* 主函数,由index调用。
-
* @author 肖江
-
* @param $className
-
* @return unknown_type
-
*/
-
function run($className) {
-
try {
-
$this->setClass($className);
-
$this->parseData($_REQUEST);
-
$GLOBALS[‘domain’]=self::$domain;
-
$classObject=new $className; //load
-
<a href="mailto:$result=@call_user_func_array(array($classObject,self::$serverInfo['method'">$result=@call_user_func_array(array($classObject,self::$serverInfo['method'</a>]), $param);
-
// $debug=new BdebugE();
-
// $debug->showErr('JsonServer 执行了.',$className."\r\n结果:\r\n".print_r($result,true),1);
-
} catch (dherror $err) {
-
}
-
}
-
/**
-
* 检查Data
-
* @author 肖江
-
* @param $data
-
* @return unknown_type
-
*/
-
function parseData($data) {
-
else $this->setKeyPasswd($data['Domain']);
-
else {
-
else self::$serverInfo['method']=$this->getMethod($data['Method'],$data['SecureData']);
-
}
-
}
-
/**
-
* 获取方法名
-
* @author 肖江
-
* @param $methodStr
-
* @return unknown_type
-
*/
-
function getMethod($methodStr,$secureCode) {
-
//$method=self::$jsonDecode->decrypt($methodStr,self::$serverInfo['keyPasswd']);
-
$this->error(‘数据校验不通过’,10060);
-
return $method[1];
-
}
-
/**
-
* 错误抛出
-
* @author 肖江
-
* @param $errStr
-
* @param $errCode
-
* @param $className
-
* @return unknown_type
-
*/
-
function error($errStr,$errCode) {
-
throw new dhError ( $errStr,$errCode,‘接口 :’.self::$myClass,1 );
-
}
-
}
-
-
<?php
-
/**
-
*
-
* @author 肖江
-
* @test
-
*/
-
class SjsonClient {
-
/**
-
* 构造函数
-
* @author 肖江
-
* @param $url
-
* @param $domain
-
* @return unknown_type
-
*/
-
function __construct($url,$domain) {
-
self::$jsonDecode=new Btea();
-
self::$curl=new Bcurl();
-
self::$baseInfo[‘url’]=$url;
-
self::$baseInfo[‘domain’]=$domain;
-
self::$baseInfo[‘keyPasswd’]=l(‘FmyRpc’)->$domain;
-
self::setArrMode();
-
$this->error(‘未能找到相关网站密码’,10035,$url);
-
}
-
/**
-
* 设置client返回的是obj还是array
-
* @author 肖江
-
* @param boolean true是array false是object
-
* @return unknown_type
-
*/
-
self::$baseInfo[‘arrMode’]=$mode;
-
return $this;
-
}
-
/**
-
* 内部函数
-
* @param string 函数名
-
* @param array 参数
-
*/
-
function __call($funcName,$param) {
-
try {
-
$callRequest=$this->makeCall($funcName,$param);
-
-
‘method’=>‘POST’,
-
‘post_fields’=>$callRequest
-
))->exec();
-
} catch (dhError $e) {
-
$e->showDebugE(); //处理showMode=1
-
$e->getMsg(); //处理showMode=0/2
-
}
-
}
-
/**
-
* 创建一次请求信息
-
* @author 肖江
-
* @param $funcName
-
* @param $param
-
* @return unknown_type
-
*/
-
function makeCall($funcName,$param) {
-
$callRequest[‘Domain’]=self::$baseInfo[‘domain’];
-
$callRequest[‘Data’]=json_encode($param);
-
return $callRequest;
-
}
-
/**
-
* 错误抛出
-
* @author 肖江
-
* @param $errStr
-
* @param $errCode
-
* @param $className
-
* @return unknown_type
-
*/
-
function error($errStr,$errCode,$className) {
-
throw new dhError ( $errStr,$errCode,$className,1 );
-
}
-
}
-
Recent Comments