/** * 发起一个腾讯API请求 * @param $command 接口名称 如:t/add * @param $params 接口参数 array('content'=>'test'); * @param $method 请求方式 POST|GET * @param $multi 图片信息 * @return string */ public static function api($command, $params = array(), $method = 'GET', $multi = false) { if (isset($_SESSION['t_access_token'])) { //OAuth 2.0 方式 //鉴权参数 $params['access_token'] = $_SESSION['t_access_token']; $params['oauth_consumer_key'] = OAuth::$client_id; $params['openid'] = $_SESSION['t_openid']; $params['oauth_version'] = '2.a'; $params['clientip'] = Common::getClientIp(); $params['scope'] = 'all'; $params['appfrom'] = 'php-sdk2.0beta'; $params['seqid'] = time(); $params['serverip'] = $_SERVER['SERVER_ADDR']; $url = self::$apiUrlHttps . trim($command, '/'); } elseif (isset($_SESSION['t_openid']) && isset($_SESSION['t_openkey'])) { //openid & openkey方式 $params['appid'] = OAuth::$client_id; $params['openid'] = $_SESSION['t_openid']; $params['openkey'] = $_SESSION['t_openkey']; $params['clientip'] = Common::getClientIp(); $params['reqtime'] = time(); $params['wbversion'] = '1'; $params['pf'] = 'php-sdk2.0beta'; $url = self::$apiUrlHttp . trim($command, '/'); //生成签名 $urls = @parse_url($url); $sig = SnsSign::makeSig($method, $urls['path'], $params, OAuth::$client_secret . '&'); $params['sig'] = $sig; } //请求接口 $r = TencentHttp::request($url, $params, $method, $multi); $r = preg_replace('/[^\\x20-\\xff]*/', '', $r); //清除不可见字符 $r = iconv('utf-8', 'utf-8//ignore', $r); //UTF-8转码 //调试信息 if (self::$debug) { echo '<pre>'; echo '接口:' . $url; echo '<br>请求参数:<br>'; print_r($params); echo '返回结果:' . $r; echo '</pre>'; } return $r; }