【微信开发】静默授权与弹框获取用户基本信息!

之前有写过一个获取用户信息的(用于微信登录的)

这个是那个的简单化 不需要用户点击确定(用于微信支付获取的openid)

今天把两种方法都写出来吧 以后可以直接CV使用了

获取用户登录用户信息的 点击允许的授权

 public function wxLogin()
    {
        AppID     = Config::get('weixinpay_config.appid');
        //redirect_uri1 = urlencode('http://admin.php1314.cn/index/wxSample/getUserInfo');
        redirect_uri = urlencode(Config::get('weixinpay_config.redirect_uri'));
        //die();
        //跳转微信回调到redirect_uri获取codeurl1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=AppID&redirect_uri=redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";
        return redirect(url1);//参数snsapi_userinfo(弹框授权获取用户完整信息)
    }
    public function getUserInfo()//弹框授权
    {
        //echo '2';code      = _GET["code"];AppID     = Config::get('weixinpay_config.appid');
        Appsecret = Config::get('weixinpay_config.key');url       = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=AppID&secret=Appsecret&code=code&grant_type=authorization_code";res       = this->sendRequest(url);
        access_token =res["access_token"];
        openId       =res['openid'];
         getUserInfo  = "https://api.weixin.qq.com/sns/userinfo?access_token=access_token&openid=openId&lang=zh_CN";user_info = this->sendRequest(getUserInfo);
        var_dump(user_info);
        session('openid',openId); //浏览器打开session为空的原因是 用户在微信打开 只会把session存到手机端
    }

静默授权

 public function wxLogin()
    {
        AppID     = Config::get('weixinpay_config.appid');
        //redirect_uri1 = urlencode('http://admin.php1314.cn/index/wxSample/getUserInfo');
        redirect_uri = urlencode(Config::get('weixinpay_config.redirect_uri'));
        //跳转微信回调到redirect_uri获取codeurl1 = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=AppID&redirect_uri=redirect_uri&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
        return redirect(url1);//参数scop=snsapi_base只获取openid
    }
    public function getUserInfo()//静默授权
    {
        //echo '2';code      = _GET["code"];AppID     = Config::get('weixinpay_config.appid');
        Appsecret = Config::get('weixinpay_config.key');url       = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=AppID&secret=Appsecret&code=code&grant_type=authorization_code";res       = this->sendRequest(url);
        access_token =res["access_token"];
        openId       =res['openid'];
        session('openid', $openId); //浏览器打开session为空的原因是 用户在微信打开 只会把session存到手机端
    }

两者区别也说的很清楚了!
来看看代码区别吧 其实也只是一个参数的问题而已!

注意两边的代码url参数!

获取用户基本信息需要请求两次url
而获取openid只需要携带code和appid与appsecret请求一次即可!

为您推荐

评论已关闭