config = config('mob'); } public function getResult(){ return $this->res; } /** * run 数据 * @param $token 服务器token * @param $opToken 运营商token * @param $operator 运营商类型,[CMCC:中国移动,CUCC:中国联通,CTCC:中国电信] */ public function run($token,$opToken,$operator){ //初始化 $curl = curl_init(); //设置抓取的url curl_setopt($curl, CURLOPT_URL, $this->host."/auth/auth/sdkClientFreeLogin"); //设置头文件的信息作为数据流输出 curl_setopt($curl, CURLOPT_HEADER, 0); //设置获取的信息以文件流的形式返回,而不是直接输出。 curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); //设置post方式提交 curl_setopt($curl, CURLOPT_POST, 0); //设置post数据 $post_data = array( "appkey" => $this->config['appkey'], "token" => $token, "opToken" => $opToken, 'operator'=> $operator, 'timestamp'=> $this->getUnixTimestamp() ); if ($this->config['md5'] != '') { $post_data['md5'] = $this->config['md5']; } $post_data['sign'] = $this->getSign($post_data, $this->config['appSecret']); $jsonStr = json_encode($post_data); curl_setopt($curl, CURLOPT_POSTFIELDS, $jsonStr); curl_setopt($curl, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json; charset=utf-8', 'Content-Length: ' . strlen($jsonStr) ) ); //执行命令 $data = curl_exec($curl); //关闭URL请求 curl_close($curl); $json = json_decode($data); if ($json->status == 200) { $d = openssl_decrypt($json->res, "DES-CBC", $this->config['appSecret'], 0, "00000000"); $this->res = json_decode($d, true); } } function getSign($data, $secret) { ksort($data); $str = ''; foreach ($data as $k => $v ) { $str .= "$k=$v&"; } $str = substr($str, 0, -1); return md5($str.$secret); } function getUnixTimestamp () { list($s1, $s2) = explode(' ', microtime()); return (float)sprintf('%.0f',(floatval($s1) + floatval($s2)) * 1000); } }