————————————————–獲取 token———————————————-
/** * 獲得access_token * @return bool */function getAccessToken(){ $appid = C("APPID"); $secret = C("APPSECRET"); $token_file = $_SERVER['DOCUMENT_ROOT'].__ROOT__."/Public/access_token"; //讀取文件內容 $content = json_decode(file_get_contents($token_file)); //獲得access_token的憑證有效時間 $expires_in = $content->expires_in; if(time()-filemtime($token_file) < $expires_in){ //保存的token有效,返回token值 return $content->access_token; }else{ //保存的token無效,重新修改文件的數據 $url = "https://api.weixin.QQ.com/cgi-bin/token?grant_type=client_credential&appid=$appid&secret=$secret"; $str = file_get_contents($url); $json = json_decode($str); $token = $json->access_token; if($token){ file_put_contents($token_file,$str); return $token; }return false; }}———————————————靜默授權 獲取OpenID———————————————
/** * 通過授權獲得用戶唯一標識openid * @param string $parameter * @return mixed|null|void */ PRotected function getOpenid($parameter = ''){ if(session("openid")){ return session("openid"); }else{ $appID = C('APPID'); $appsecret = C('APPSECRET'); //1,用戶同意授權,獲取code if (!isset($_GET['code'])){ //觸發微信返回code碼 $url = C("HOST").__ACTION__.$parameter; $url = urlencode($url); $authUrl = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appID&redirect_uri=$url&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect"; Header("Location: $authUrl"); }else{ //獲取code碼,以獲取openid $code = $_GET['code']; } //2,獲得網頁授權access_token $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appID&secret=$appsecret&code=$code&grant_type=authorization_code"; $data = file_get_contents($url); $data = json_decode($data); //獲取用戶openid; $openid = $data->openid; //存儲openid session('openid', $openid); return $openid; } }新聞熱點
疑難解答
圖片精選