$secret = APP_SECRET; if ($_REQUEST['web']) { $appid = APPID_PC; $secret = APP_SECRET_PC; } $params = "appid={$appid}&secret={$secret}&code={$code}&grant_type=authorization_code"; $line = SnsNetwork::makeRequest('https://api.weixin.qq.com/sns/oauth2/access_token', $params, '', 'get', 'https'); if (!$line['result']) { // 访问失败了 echo json_encode(array("error" => "访问失败")); die; } $token = json_decode($line['msg'], true); if ($token['errmsg']) { // 换取code失败 echo json_encode(array("error" => $token['errmsg'])); die; } // 成功获取到了,记录到session中 session_start(); $token['expires'] = time() + $token['expires_in'] - 15 * 60; $_SESSION['access_token'] = $token; // 拉取用户信息 $access_token = $token['access_token']; $openid = $token['openid']; $params = "access_token={$access_token}&openid={$openid}&lang=zh_CN"; $line = SnsNetwork::makeRequest('https://api.weixin.qq.com/sns/userinfo', $params, '', 'get', 'https'); echo json_encode(array("openid" => $token['openid'], "unionid" => $token['unionid'], "userinfo" => json_decode($line['msg'], true))); // 调用具体的业务逻辑处理 after_login();
$secret = APP_SECRET; if ($_REQUEST['web']) { $appid = APPID_PC; $secret = APP_SECRET_PC; } $params = "appid={$appid}&secret={$secret}&code={$code}&grant_type=authorization_code"; $line = SnsNetwork::makeRequest('https://api.weixin.qq.com/sns/oauth2/access_token', $params, '', 'get', 'https'); if (!$line['result']) { // 访问失败了 echo json_encode(array("error" => "访问失败")); die; } $token = json_decode($line['msg'], true); if ($token['errmsg']) { // 换取code失败 echo json_encode(array("error" => $token['errmsg'])); die; } // 成功获取到了,记录到session中 session_start(); $token['expires'] = time() + $token['expires_in'] - 15 * 60; $_SESSION['access_token'] = $token; // 拉取用户信息 $access_token = $token['access_token']; $openid = $token['openid']; $params = "access_token={$access_token}&openid={$openid}&lang=zh_CN"; $line = SnsNetwork::makeRequest('https://api.weixin.qq.com/sns/userinfo', $params, '', 'get', 'https'); echo json_encode(array("openid" => $token['openid'], "unionid" => $token['unionid'], "userinfo" => json_decode($line['msg'], true))); // 调用具体的业务逻辑处理, 传入用户参数 after_login($token['openid'], json_decode($line['msg'], true));
function do_login($uid) { cookie('next_direct_login', $uid, 30 * 3600 * 24); $member = D('User/Member'); $info = $member->_getById($uid); // $info = \Member::model()->findbypk($uid); // $member = $info; // $member->forget_code = ''; // $member->last_login_time = date("Y-m-d H:i:s"); // $member->last_login_ip = get_client_ip(); if (!IsDebug()) { $member->save(array('id' => $uid, 'last_login_time' => date('Y-m-d H:i:s'), 'last_login_ip' => get_client_ip())); // $member->save(); } $info['role'] = I('role', 1); /* $info ['group_admin_count'] = M ( 'school' )->where ( array ( //该用户是多少个圈子的圈主 'group_member_id' => $info ['id'] ) )->count (); */ session('member', $member); session('member_id', $uid); session('info', $info); //update_data ( $this->table ); //登入送积分 $param = array('uid' => $info['id'], 'tablename' => 'member', 'tableid' => $info['id'], 'uname' => $info['nickname'], 'action' => MODULE_NAME . '/' . CONTROLLER_NAME . '/' . ACTION_NAME, 'ruleId' => 7, 'field' => 'score', 'isLimit' => true, 'isdate' => true); if (!IsDebug()) { tag('setScore', $param); } after_login(); }