if (empty($openid)){ if (empty($_REQUEST["code"])) { $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".$APPID."&redirect_uri=".$redirect_url."&response_type=code&scope=snsapi_base&state=blinq#wechat_redirect"; echo $this->assign('url', $url)->fetch('redirect'); return; }else{ $code = $_REQUEST['code']; $APPID = C("APPID"); $SECRET = C("SECRET"); $accessTokenUrl = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=" . $APPID . "&secret=" . $SECRET . "&code=$code&grant_type=authorization_code"; $ch = curl_init($accessTokenUrl); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1; rv:21.0) Gecko/20100101 Firefox/21.0'); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); $info = curl_exec($ch); $dataJson = json_decode($info, true); $openid = $dataJson['openid']; $userdata = $table->get_subscribe_res($openid); $subscribed = $userdata['data']['subscribed']; if($subscribed){ session("openid", $openid); }else{ $url="http://www.oschina.net/code/step1?catalog="; echo $this->assign('url', $url)->fetch('redirect'); return; } } }