php微信登陆

//获取
    public function getJsapi_ticket(){
        $url = urldecode($_POST['url']);
        vendor('wx.jssdk');
        $jssdk = new \JSSDK("appid", "appsecret",$url);//你的appid,appsecret
        $data = $jssdk->GetSignPackage();
        exit(json_encode(array('state'=>'1','msg'=>'请求成功','data'=>$data)));
    }
    //微信授权
    public function weixin(){
        $code = $_POST['code'];
        $state = $_POST['state'];
        //换成自己的接口信息
        $appid = 'appid';
        $secret = 'appsecret';
        
        // 第一步:取得openid
        $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
        $oauth2 = $this->getJson($oauth2Url);
        $access_token = $oauth2["access_token"];  
        $openid = $oauth2['openid']; 
        

        $get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
        $rs = $this->getJson($get_user_info_url);
        //打印用户信息
        $find = M('member')->where('wx_open_id = "'.$rs['openid'].'"')->find();
        if($find){
            $list['access_token'] = md5($find['uid'].$find['wx_open_id'].time());
            $id = M('member')->where('uid = "'.$find['uid'].'"')->save($list);
            $info['uid'] = $find['uid'];
            $info['access_token'] = $list['access_token'];
        }else{
            $data['wx_open_id'] = $rs['openid'];
            $data['nickname'] = $rs['nickname'];
            $data['sex'] = $rs['sex'];
            $data['province'] = $rs['province']  ?: "";
            $data['country'] = $rs['country']  ?: "";
            $data['avatar'] = $rs['headimgurl'];
            $data['city'] = $rs['city'] ?: "";
            $data['access_token'] = md5($data['avatar'].$data['wx_open_id'].time());
            $data['type'] = 1;
            $id = M('member')->add($data);
            $info['uid'] = $id;
            $info['access_token'] = $data['access_token'];
        }
        // file_put_contents('info.txt',print_r($info,true));
        if($id){
            exit(json_encode(array("state"=>'1',"msg"=>'登录成功',"data"=>$info)));
        }else{
            exit(json_encode(array("state"=>'0',"msg"=>'登录失败',"data"=>'')));
        }
    }
    public function getJson($url){
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        $output = curl_exec($ch);
        curl_close($ch);
        return json_decode($output, true);
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值