zoukankan      html  css  js  c++  java
  • 网页授权

    /**
    * 网页授权获取用户openid
    * @return [type] [description]
    */
    public static function getOpenid()
    {
      //echo 1;die;
      //先去session里取openid
      $openid = session('openid');
      //var_dump($openid);die;
      if(!empty($openid)){
        return $openid;
      }
    //微信授权成功后 跳转咱们配置的地址 (回调地址)带一个code参数
      $code = request()->input('code');
    if(empty($code)){
      //没有授权 跳转到微信服务器进行授权
      $host = $_SERVER['HTTP_HOST']; //域名
      $uri = $_SERVER['REQUEST_URI']; //路由参数
      $redirect_uri = urlencode("http://".$host.$uri); // ?code=xx
      $url = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=".self::appid."&redirect_uri={$redirect_uri}&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect";
      header("location:".$url);die;
    }else{
      //通过code换取网页授权access_token
      $url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=".self::appid."&secret=".self::secret."&code={$code}&grant_type=authorization_code";
      $data = file_get_contents($url);
      $data = json_decode($data,true);
      $openid = $data['openid'];
      //获取到openid之后 存储到session当中
      session(['openid'=>$openid]);
      return $openid;
      //如果是非静默授权 再通过openid access_token获取用户信息
      }
    }

    //简单示例仅供参考

  • 相关阅读:
    Kubernetes 部署微服务电商平台(16)
    Android开发如何去除标题栏title
    eclipse中logcat偶尔不显示log的问题解决办法
    Two Sum
    事件的解除与绑定
    使用 Canvas 绘图
    表单脚本
    事件
    DOM2 和 DOM3
    DOM扩展
  • 原文地址:https://www.cnblogs.com/dsds/p/11634110.html
Copyright © 2011-2022 走看看