最近要做一个微信获取定位的功能。要用到微信官方jssdk。
从帮助文档里下载的sample.zip里有个php的示例jssdk.php,发现有至少如下错误:
错误1:get_php_file和配套方法set_php_file有问题。根本读取不到文件里的内容。
具体原因没去研究了。赶时间。反正自己重新写了一个以后就可以用了。
原本的方法是加入了一句"<?php exit();?>" 可能是为了数据安全需要。我这里的data目录已经屏蔽了直接访问,不需要此操作。
/** * 从文件读取微信AccessToken * qcw * @return mixed */public function getJsAccessTokenFromFile(){ $filename = ROOT_PATH . "/data/WxAccessTokenJS.php" ; $data = file_get_contents ( $filename ); $cfg = json_decode( $data , false ); // 配置 return $cfg ; }
错误2:httpGet方法根本获取不到信息
自带httpGet方法根本获取不到api返回的数据。同上,自己重新写了一个方法解决了。
/** * qcw 另外一个获取的方法 * @param $url * @return bool|mixed */ private function httpGet($url){ $oCurl = curl_init(); if(stripos($url,"https://")!==FALSE){ curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, FALSE); } curl_setopt($oCurl, CURLOPT_URL, $url); curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1 ); $sContent = curl_exec($oCurl); $aStatus = curl_getinfo($oCurl); curl_close($oCurl); if(intval($aStatus["http_code"])==200){ return $sContent; }else{ return false; } }