加入收藏 | 设为首页 | 会员中心 | 我要投稿 张家口站长网 (https://www.0313zz.com.cn/)- 办公协同、操作系统、混合云网络、数据湖、视觉智能!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

微信公众平台实现微信网页登陆授权开发

发布时间:2022-07-05 09:15:34 所属栏目:PHP教程 来源:互联网
导读:微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看. 文件1:index.php //换成自己的接口信息 $appid = XXXXX; header(location:https://open.weixin.qq.co
  微信公众平台实现微信网页登陆授权开发其实是非常的简单了,因为官方的参考程序了,下面小编就看了一站长根据官方参考做的一个网页登陆授权例子,大家可看看.
 
  文件1:index.php
 
  //换成自己的接口信息
  $appid = 'XXXXX';
  header('location:https://open.weixin.qq.com/connect/oauth2/authorize?appid='.$appid.'&redirect_uri=127.0.0.1/oauth.php&response_type=code&scope=snsapi_userinfo&state=123&connect_redirect=1#wechat_redirect');
  参数说明:参数是否必须说明
 
  appid 是 公众号的唯一标识
 
  redirect_uri 是 授权后重定向的回调链接地址,请使用urlencode对链接进行处理
 
  response_type 是 返回类型,请填写code
 
  scope 是 应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)
 
  state 否 重定向后会带上state参数,开发者可以填写a-zA-Z0-9的参数值
 
  #wechat_redirect 是 无论直接打开还是做页面302重定向时候,必须带此参数
 
  文件二:oauth.php,代码如下:
 
  <?php
  $code = $_GET['code'];
  $state = $_GET['state'];
  //换成自己的接口信息
  $appid = 'XXXXX';
  $appsecret = 'XXXXX';
  if (emptyempty($code)) $this->error('授权失败');
  $token_url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid='.$appid.'&secret='.$appsecret.'&code='.$code.'&grant_type=authorization_code';
  $token = json_decode(file_get_contents($token_url));
  if (isset($token->errcode)) {
      echo '<h1>错误:</h1>'.$token->errcode;
      echo '<br/><h2>错误信息:</h2>'.$token->errmsg;
      exit;
  }
  $access_token_url = 'https://api.weixin.qq.com/sns/oauth2/refresh_token?appid='.$appid.'&grant_type=refresh_token&refresh_token='.$token->refresh_token;
  //转成对象
  $access_token = json_decode(file_get_contents($access_token_url));
  if (isset($access_token->errcode)) {
      echo '<h1>错误:</h1>'.$access_token->errcode;
      echo '<br/><h2>错误信息:</h2>'.$access_token->errmsg;
      exit;
  }
  $user_info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token='.$access_token->access_token.'&openid='.$access_token->openid.'&lang=zh_CN';  //开源软件:phpfensi.com
  //转成对象
  $user_info = json_decode(file_get_contents($user_info_url));
  if (isset($user_info->errcode)) {
      echo '<h1>错误:</h1>'.$user_info->errcode;
      echo '<br/><h2>错误信息:</h2>'.$user_info->errmsg;
      exit;
  }
  //打印用户信息
  echo '<pre>';
  print_r($user_info);
  echo '</pre>';
  ?>
  参数 描述
 
  openid 用户的唯一标识
 
  nickname 用户昵称
 
  sex 用户的性别,值为1时是男性,值为2时是女性,值为0时是未知
 
  province 用户个人资料填写的省份
 
  city 普通用户个人资料填写的城市
 
  country 国家,如中国为CN
 
  headimgurl 用户头像,最后一个数值代表正方形头像大小(有0、46、64、96、132数值可选,0代表640*640正方形头像),用户没有头像时该项为空.
 
  privilege 用户特权信息,json 数组,如微信沃卡用户为(chinaunicom)
 
  unionid 只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。详见:获取用户个人信息(UnionID机制)
 
  到此网页登陆授权开发功能就作完了,如果想要获取用户基本信息我们需要看另一个例子,在官方有说明大家可自行搜索哦.
 
 

(编辑:张家口站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读