public function index() { if (!session('openid_' . $this->token)) { $this->info = M('wxuser')->where(array('token' => $this->token))->find(); vendor("Oauth2.OAuth2", LIB_PATH . '../Extend/Vendor'); vendor("Oauth2.Provider.Wechat", LIB_PATH . '../Extend/Vendor'); $wechat = new Wechat(); $wechat->config(array('id' => $this->info['appid'], 'secret' => $this->info['appsecret'])); $redirect_uri = C('site_url') . '/index.php/Wap/Coupons/index?token=' . $this->token . '&coupon_id=' . $this->coupon_id; if (!$_GET['code']) { // By sending no options it'll come back here $url = $wechat->authorize(array('redirect_uri' => $redirect_uri)); redirect($url); } else { try { // Have a go at creating an access token from the code $token = $wechat->access($_GET['code'], array('redirect_uri' => $redirect_uri)); // Use this object to try and get some user details (username, full name, etc) $user = $wechat->get_user_info($token); $this->openid = $user->openid; session('openid_' . $this->token, $user->openid); } catch (OAuth2_Exception $e) { print_r($e); die; } } } else { $this->openid = session('openid_' . $this->token); } $url = C('site_url') . "/index.php?g=Wap&m=Coupon&a=index&type=1&token=" . $this->token . '&id=' . $this->coupon_id . '&wecha_id=' . $this->openid; header('Location:' . $url); }
function index() { if (!session('openid_' . $this->token)) { $this->info = M('wxuser')->where(array('token' => $this->token))->find(); vendor("Oauth2.OAuth2", LIB_PATH . '../Extend/Vendor'); vendor("Oauth2.Provider.Wechat", LIB_PATH . '../Extend/Vendor'); $wechat = new Wechat(); $wechat->config(array('id' => $this->info['appid'], 'secret' => $this->info['appsecret'])); $redirect_uri = C('site_url') . '/index.php/Wap/Login/index?token=' . $this->token . '&url=' . $this->url; if (!$_GET['code']) { // By sending no options it'll come back here $url = $wechat->authorize(array('redirect_uri' => $redirect_uri)); redirect($url); } else { try { // Have a go at creating an access token from the code $access_token = $wechat->access($_GET['code'], array('redirect_uri' => $redirect_uri)); // Use this object to try and get some user details (username, full name, etc) $user = $wechat->get_user_info($access_token); $this->save_wechat_user($user); session('openid_' . $this->token, $user->openid); } catch (OAuth2_Exception $e) { print_r($e); die; } } } if ($this->url) { redirect($this->url); } }
public function Oauth2() { if (!session('openid_' . $this->token)) { $this->info = M('wxuser')->where(array('token' => $this->token))->find(); vendor("Oauth2.OAuth2", LIB_PATH . '../Extend/Vendor'); vendor("Oauth2.Provider.Wechat", LIB_PATH . '../Extend/Vendor'); $wechat = new Wechat(); $wechat->config(array('id' => $this->info['appid'], 'secret' => $this->info['appsecret'])); $redirect_uri = $_GET['method_name']; if (!$_GET['code']) { $redirect_uri = C('site_url') . '/index.php/Fxs/Fxs/Oauth2?token=' . $this->token . '&method_name=' . $_GET['method_name']; // By sending no options it'll come back here $url = $wechat->authorize(array('redirect_uri' => $redirect_uri)); redirect($url); } else { try { // Have a go at creating an access token from the code $token = $wechat->access($_GET['code'], array('method_name' => $redirect_uri)); // Use this object to try and get some user details (username, full name, etc) $user = $wechat->get_user_info($token); session('openid_' . $this->token, $user->openid); } catch (OAuth2_Exception $e) { print_r($e); die; } } } if (session('openid_' . $this->token)) { $user = M('reguser')->where(array('token' => $this->token, 'openid' => session('openid_' . $this->token)))->find(); if (!$user) { session_destroy(); } } header('Location:' . U('Fxs/' . $_GET['method_name'], array('token' => $this->token))); }
function indexOp() { $model_member = Model('member'); $wxinfo = $model_member->get_wx_config(); if (empty($wxinfo)) { showDialog('您还没有配置微信基本参数appid,appsecret!'); } $wechat = new Wechat($wxinfo['appid'], $wxinfo['appsecret'], 'snsapi_base'); if (!isset($_GET['code'])) { $redirect_uri = SHOP_SITE_URL . '/index.php?act=wxuser'; $url = $wechat->get_code_url($redirect_uri); header("Location: {$url}"); } else { $code = $_GET['code']; } if (empty($code)) { showDialog('授权获取code失败'); } $oauth = json_decode($wechat->get_oauth_token($code)); $return_url = SHOP_SITE_URL . '/index.php?act=wap_index'; if (isset($oauth->access_token) && isset($oauth->openid)) { $user = json_decode($wechat->get_user_info($oauth->openid, $oauth->access_token)); try { if (!$user->openid) { throw new Exception('未获取到微信用户的基本信息'); } $openid = $user->openid; $wxusers = $model_member->get_wx_user($openid); if ($wxusers && $wxusers[0]) { $model_member->createSession($wxusers[0]); header("Location:{$return_url}"); exit; } $model_member->beginTransaction(); $params['openid'] = $openid; $params['nickname'] = $user->nickname; $params['sex'] = $user->sex; $params['headimgurl'] = $user->headimgurl; $params['city'] = $user->city; $params['province'] = $user->province; $params['country'] = $user->country; $params['userinfo'] = json_encode($user); $params['create_time'] = date('Y-m-d H:i:s'); $params['update_time'] = date('Y-m-d H:i:s'); $wx_users_id = $model_member->addWxUser($params); if ($wx_users_id) { $count = $model_member->get_member_count(); $insert_array = array(); $insert_array['member_name'] = 'uk_wx_' . $count; $insert_array['member_passwd'] = md5('123456'); $insert_array['member_email'] = $insert_array['member_name'] . '@xx.xx'; $insert_array['member_email_bind'] = 1; $insert_array['member_time'] = time(); $insert_array['member_login_time'] = $insert_array['member_time']; $insert_array['member_points'] = 20; $insert_array['member_login_ip'] = uk86_getIp(); $insert_array['member_sex'] = $params['sex']; $insert_array['wx_users_id'] = $wx_users_id; $result = Model('member')->insert($insert_array); if (empty($result)) { throw new Exception('注册用户失败'); } $member_info = $model_member->getMemberInfo(array('member_name' => $insert_array['member_name'], 'member_passwd' => $insert_array['member_passwd'])); if (!empty($member_info) && is_array($member_info)) { //会员信息写入session $model_member->createSession($member_info); } else { throw new Exception('未获取到用户注册信息'); } } else { throw new Exception('微信用户信息添加失败'); } $model_member->commit(); header("Location:{$return_url}"); } catch (Exception $e) { $model_member->rollback(); showDialog($e->getMessage()); } } else { showDialog('获取信息失败', $return_url); } }