1. 程式人生 > >第三方微信登陸Demo

第三方微信登陸Demo

//微信登陸
public function wx_login(){
    $appid = 'wx74718509b6688f2a';
    $url = "https://open.weixin.qq.com/connect/qrconnect";
    $redirect_uri = UrlEncode(site_url('member/wx_back'));
    $state = '3d6be0a4035d839573b04816624a415e'; 
    $_SESSION['state'] = $state; 
    $login_url = "https://open.weixin.qq.com/connect/qrconnect?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_login&state=3d6be0a4035d839573b04816624a415e#wechat_redirect"
; header("Location:$login_url"); } //微信回撥 public function wx_back(){ $code = $_GET['code']; $state = $_GET['state']; if($_SESSION['state']==$state){ $login_url = site_url("member/wx_token/$code"); header("Location:$login_url"); } } //微信token public function wx_token($code
)
{
$appid = 'wx74718509b6688f2a'; $secret = '7a56bb76387b5f25874adc5037991c1d'; $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code"; $response = $this->get_contents($url); $tokens = json_decode($response
); $token = $tokens->access_token; $openid = $tokens->openid; if($token){ if($this->user->qqlogin_sel($openid)){ redirect('member/index_member','location'); }else{ redirect("member/wx_userinfo/$token/$openid",'location'); } }else{ redirect('member/wx_login','location'); } } //微信user public function wx_userinfo($token,$openid){ $url = "https://api.weixin.qq.com/sns/userinfo?access_token=$token&openid=$openid"; $response = $this->get_contents($url); $users = json_decode($response); $nickname = $users->nickname; if($this->user->qq_insert($openid,$nickname)){ if($this->user->qqlogin_sel($openid)){ redirect('member/index_member','location'); }else{ echo '登陸失敗'; } }else{ echo '登陸失敗'; } } //抓取網頁、模擬url訪問 public function get_contents($url){ $ch = curl_init(); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_URL, $url); $response = curl_exec($ch); curl_close($ch); return $response; }