1. 程式人生 > >微信小程式登入例子

微信小程式登入例子

    //***************************
    //  授權登入介面
    //***************************
    public function api_authlogin(){
    //        var_dump($_POST);
        $openid = $_POST['openid'];
        if (!$openid) {
            echo json_encode(array('code'=>0,'msg'=>'授權失敗!'));
            exit();
        }
        $con = array();
        $con['openid']=trim($openid);
        $user = new  Wxuser();
        $u = $user->where($con)->find();
        $uid = $u['uid'];
//        var_dump($uid);
        if ($uid) {
            $userinfo = $user->where('uid='.intval($uid))->find();
            if (empty($userinfo)) {
                echo json_encode(array('code'=>0,'msg'=>'賬號狀態異常!'));
                exit();
            }
            $err = array();
            $err['ID'] = intval($uid);
            $err['NickName'] = $_POST['NickName'];
            $err['HeadUrl'] = $_POST['HeadUrl'];
            echo json_encode(array('code'=>1,'data'=>$err));
            exit();
        }else{
            $data = array();
            $data['username'] = $_POST['NickName'];
            $data['uname'] =$_POST['NickName'];
            $data['photo'] = $_POST['HeadUrl'];
            $data['sex'] = $_POST['gender'];
            $data['openid'] = $openid;
            $data['source'] = 'wx';
            //$data['addtime'] = time();
            if (!$data['openid']) {
                echo json_encode(array('code'=>0,'msg'=>'授權失敗!','data' => ''));
                exit();
            }
            //$res = M('user')->add($data);
//            var_dump($data);
            $res = $user->save($data);
//            var_dump($res);
            if ($res) {
                $err = array();
                $err['ID'] = intval($user->uid);
                $err['NickName'] = $data['username'];
                $err['HeadUrl'] = $data['photo'];
                echo json_encode(array('code'=>1,'arr'=>$err));
                exit();
            }else{
                echo json_encode(array('code'=>0,'msg'=>'授權失敗!','data' => ''));
                exit();
            }
        }
    }




    //***************************
    //  獲取sessionkey 介面
    //***************************
    public function api_getsessionkey(){


        $appid = config('sys.appid');
        $secret = config('sys.appsecret');
//        var_dump($wx_config);
        $code = trim($_POST['code']);
        if (!$code) {
            echo json_encode(array('code'=>0,'msg'=>'非法操作!','data' => ''));
            exit();
        }

        if (!$appid || !$secret) {
            echo json_encode(array('code'=>0,'msg'=>'非法操作!','data' => ''));
            exit();
        }

        $get_token_url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$appid.'&secret='.$secret.'&js_code='.$code.'&grant_type=authorization_code';
//    dump($get_token_url);
        /*$ch = curl_init();
        curl_setopt($ch,CURLOPT_URL,$get_token_url);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
        //curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10);
        $res = curl_exec($ch);
        curl_close($ch);*/
        $ch = curl_init();
        // 2. 設定選項,包括URL
        curl_setopt($ch,CURLOPT_URL,$get_token_url);
        curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
        curl_setopt($ch,CURLOPT_HEADER,0);
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
        // 3. 執行並獲取HTML文件內容
        $output = curl_exec($ch);
        if($output === FALSE ){
            echo "CURL Error:".curl_error($ch);
        }
        // 4. 釋放curl控制代碼
        curl_close($ch);
//    dump($output);
        echo json_encode(array('code'=>1,'msg'=>'返回sessionkey','data' => json_decode($output,true) ));
//        echo $output;
        exit();
    }