| 
					
				 | 
			
			
				@@ -242,10 +242,7 @@ class Client extends Base 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			$refer = urldecode($this->refer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 			Dever::location($refer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-			$result = $user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	        $result['uid'] = $user['id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	        $result['signature'] = Dever::login($user['id']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	        return $result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	        return $user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -254,9 +251,6 @@ class Client extends Base 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	private function update($data, $id) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-		$uid = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $info = Dever::load('passport/wechat-one', array('option_openid' => $data['openid'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $this->param('user', 'access_token', $data['access_token']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 		$this->param('user', 'openid', $data['openid']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -285,84 +279,7 @@ class Client extends Base 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             $user['country'] = $userinfo['country']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($userinfo['country'] && $userinfo['province'] && $userinfo['city']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        	$user['area'] = $userinfo['country'] .','. $userinfo['province'] .','. $userinfo['city']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    	} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if (!$info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (isset($data['unionid']) && $data['unionid']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $info = Dever::load('passport/wechat-one', array('unionid' => $data['unionid'])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $uid = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $uid = $info['uid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $wechat['unionid'] = $data['unionid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (!$uid) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	$user['source_type'] = 'service'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	if ($this->system) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$user['system_id'] = $this->system; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	            if ($this->source_type) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-					$user['source_type'] = $this->source_type; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-	            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $uid = Dever::load('passport/user-insert', $user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $user['where_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                Dever::load('passport/user-update', $user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['access_token'] = $data['access_token']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['openid'] = $data['openid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['expires_in'] = $data['expires_in']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['refresh_token'] = $data['refresh_token']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['account_id'] = $this->account; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($this->system) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-				$wechat['system_id'] = $this->system; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['uid'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['type'] = 2; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($this->source_type == 'ios') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	$wechat['type'] = 3; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } elseif ($this->source_type == 'android') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	$wechat['type'] = 4; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $id = Dever::load('passport/wechat-insert', $wechat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (Dever::project('source') && isset($this->source) && $this->source && $this->source > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	Dever::load('source/lib/core')->saveUser($id, $uid, $this->source, 'oauth', $this->account); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $uid = $info['uid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (isset($data['unionid']) && $data['unionid']) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $wechat['unionid'] = $data['unionid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                # 判断用户是否存在,是否需要合并 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $wechat['uid'] = $this->passport->combine($uid, $data['unionid']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['access_token'] = $data['access_token']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['openid'] = $data['openid']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['expires_in'] = $data['expires_in']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['refresh_token'] = $data['refresh_token']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['where_id'] = $info['id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $wechat['account_id'] = $this->account; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if ($this->system) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            	$wechat['system_id'] = $this->system; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $id = $info['id']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Dever::load('passport/wechat-update', $wechat); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $user['where_id'] = $uid; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Dever::load('passport/user-update', $user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $this->passport->createUsername($uid, $user['username']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $user = Dever::load('passport/user-one', $uid); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        $this->save($user); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    	$user = $this->passport->wechat($data, $user, $this->account, $this->system, $this->source_type, $this->source); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return $user; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	} 
			 |