use Think\Model;classDealJavaModel extends Model {
publicfunction dealJavaParam($url,$data){//調java接口位址
$url=C('java_php').$url;
$token=C('token');
$apiKey=C('apiKey');
$timestamp=time();
$version=C('version');
$source=4;
$data=json_encode($data);//簽名
$paramArr=array('token'=>$token,'timestamp'=>$timestamp,'source'=>$source,'version'=>$version,'data'=>$data
);
$sign=$this->createSign($paramArr,$apiKey);
$header= array('Content-Type: application/json; charset=utf-8',"token:$token","timestamp:$timestamp","source:$source","version:$version","sign:$sign","data:$data");
$result=$this->tocurl($url, $header,$data);
$res_info=json_decode($result,true);return$res_info;
}
privatefunction createSign ($paramArr,$apiKey) {
ksort($paramArr);
$sign='';foreach ($paramArr as $key =>$val) {if ($key != '' && $val != '') {
$sign .= $key."=".$val."&";
}
}
$sign=rtrim($sign,"&");
$sign .=$apiKey;
$sign=strtolower($sign);
$sign=md5($sign);return$sign;
}
privatefunction tocurl($url, $header, $data){
$ch=curl_init();if(substr($url,0,5)=='https'){
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,false); //跳過證書檢查
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, true); //從證書中檢查SSL加密算法是否存在
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response=curl_exec($ch);if($error=curl_error($ch)){
die($error);
}
curl_close($ch);return$response;
}
}