|  | @@ -27,7 +27,6 @@ class Login extends Controller{
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public function doGet() {
 | 
	
		
			
				|  |  |          $refer = Request::g ( 'referer' );
 | 
	
		
			
				|  |  | -        print_r($refer);die;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          $this->objMemcached->set($this->refer, $refer);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -46,16 +45,37 @@ class Login extends Controller{
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |      public function doCallback() {
 | 
	
		
			
				|  |  | -        $refer = $this->objMemcached->get($this->refer);
 | 
	
		
			
				|  |  | +        $token = $this->objMemcached->get('access_token');
 | 
	
		
			
				|  |  | +        $openid = $this->objMemcached->get('openid');
 | 
	
		
			
				|  |  | +        $data = array();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +        if ($token && $openid) {
 | 
	
		
			
				|  |  | +            $url = 'https://api.weixin.qq.com/sns/auth?access_token='.$token.'&openid='.$openid;
 | 
	
		
			
				|  |  | +            $result = $this->httpGet($url);
 | 
	
		
			
				|  |  | +            $result = json_decode($result, true);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            if ($result['errmsg'] != 'ok') {
 | 
	
		
			
				|  |  | +                $token = false;
 | 
	
		
			
				|  |  | +                $openid = false;
 | 
	
		
			
				|  |  | +            } else {
 | 
	
		
			
				|  |  | +                $data['access_token'] = $token;
 | 
	
		
			
				|  |  | +                $data['openid'] = $openid;
 | 
	
		
			
				|  |  | +            }
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                print_r($refer);die;
 | 
	
		
			
				|  |  | -        $code = Request::g ( 'code' );
 | 
	
		
			
				|  |  | -        $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
 | 
	
		
			
				|  |  | +        if (!$token) {
 | 
	
		
			
				|  |  | +            $code = Request::g ( 'code' );
 | 
	
		
			
				|  |  | +            $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$this->appId.'&secret='.$this->appSecret.'&code='.$code.'&grant_type=authorization_code';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -        $data = $this->httpGet($url);
 | 
	
		
			
				|  |  | -        $data = json_decode($data, true);
 | 
	
		
			
				|  |  | +            $data = $this->httpGet($url);
 | 
	
		
			
				|  |  | +            $data = json_decode($data, true);
 | 
	
		
			
				|  |  | +        }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          if (isset($data['access_token']) && $data['access_token']) {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +            $this->objMemcached->set('access_token', $data['access_token']);
 | 
	
		
			
				|  |  | +            $this->objMemcached->set('openid', $data['openid']);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              $url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $data['access_token'] . '&openid=' . $data['openid'] . '&lang=zh_CN';
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |              $data = $this->httpGet($url);
 | 
	
	
		
			
				|  | @@ -65,8 +85,6 @@ class Login extends Controller{
 | 
	
		
			
				|  |  |              if (isset($data['nickname']) && $data['nickname']) {
 | 
	
		
			
				|  |  |                  $refer = $this->objMemcached->get($this->refer);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -                print_r($refer);die;
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |                  $param = $data;
 | 
	
		
			
				|  |  |                  $param['uid'] = $data['openid'];
 | 
	
		
			
				|  |  |                  $refer .= '&' . http_build_url($param);
 |