在开发之前,我们要确保我们的服务号,在接口权限处,已经获得了网页授权权限

此外,我们还需要有个备案通过的域名,比如"www.myname.com",并确保你的域名可以访问到你的服务器,于是在公众号设置那里把域名配置好,把校验文件"MP_verify_lS1VtPAOta6l5jrQ.txt"放置到你的网站的根目录,于是提交成功,变成如下设置

接下来,我们要去建立一个php文件"getinfo.php",内容如下:

<?php
$appid = 'wxxxxa95xxx0xxxxx';#你的公众号appid$url="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=http%3A%2F%2Fwww.xingchuangpinzhi.com%2FgetinfoDetail.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect";#redirect_uri改为你的网页授权域名和刚刚跳转到的显示页面,比如我的是getinfoDetail.phpheader('location:'.$url);
?>

建立一个php文件"getinfoDetail.php",内容如下:

<?php
header("Access-Control-Allow-Origin:*"); #设置跨域
header("Content-Type: application/json; charset=UTF-8");
//获取存放在cookies里面的token
$code = $_GET['code'];
$state = $_GET['state'];
//换成自己的接口信息
$appid = 'wxxxxxxxxxxxxxx';#你的公众号appid
$appsecret = '7xxfxxxxxxxxxxxxxxxxx';#你的公众号appsecret
if (empty($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';
//转成对象
$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;
}$rs =  json_decode(json_encode($user_info),true);//返回的json数组转换成array数组
$openid= $rs["openid"];
$nickname=$rs["nickname"];
$sex=$rs["sex"];
$language=$rs["language"];
$city=$rs["city"];
$province=$rs["province"];
$country=$rs["country"];
$headuri=$rs["headimgurl"];
//打印用户信息
echo $openid;
echo $nickname;
echo $sex;
echo $language;
echo $city;
echo $province;
echo $nickname;
echo $headuri;
echo $country;
?>

完成后访问url:"http://www.我的域名.com/getinfo.php",显示

点击获取,打印出授权用户信息:

任何程序错误,以及技术疑问或需要解答的,请扫码添加作者VX

微信开发2之php网页授权登录相关推荐

  1. 企业微信开发(一)网页授权登录

    1.操作流程 场景:要在企业微信里面集成企业自建应用,点击应用进入应用功能列表,获取当前企业微信用户信息. UserId用于在一个企业内唯一标识一个用户,通过网页授权接口可以获取到当前用户的UserI ...

  2. php订阅号网页登录,微信订阅号怎么使用网页授权登录

    微信公众号配置网页授权域名怎么设置? 提示:无法访问banma13.tunnel.phpor.me指向的web服务器(或虚拟主机)打开微信公众平台,输入账号密码登录后台. 如果爱上一个人,请不要炫耀, ...

  3. 微信授权demo php,PHP微信公众平台oauth2.0网页授权登录类的封装demo

    一.微信授权使用的是OAuth2.0授权的方式.主要有以下简略步骤: 第一步:用户同意授权,获取code 第二步:通过code换取网页授权access_token 第三步:拉取用户信息(需scope为 ...

  4. 微信公众号开发(一) 微信网页授权登录

    微信网页授权登录 前期准备 授权登录 获取微信数据 处理授权拒绝 前期准备 1.微信公众号开发,首先要搞一个公众号,开发阶段可以申请一个公众平台测试账号. (进入到微信公众公众平台,找到开发者工具,点 ...

  5. 企业微信三方开发(三):网页授权登录

    其他链接 初识微信开发 企业微信三方开发:注册企业微信服务商 企业微信三方开发(一):回调验证及重要参数获取 企业微信三方开发(二):获取access_token 企业微信三方开发(三):网页授权登录 ...

  6. php 微信开发 网页授权登录,微信开发网页授权登录——2018年6月2日

    微信网页授权登录用户同意授权,获取code 通过code,获取网页的access_token 拉取用户信息(scope 为snsapi_userinfo) application\index\cont ...

  7. php微信授权ajax,ajax 实现微信网页授权登录

    项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个PHPer ,所以,微信开发采用的是 EasyWeCha ...

  8. java ajax 微信网页授权_ajax 实现微信网页授权登录的方法

    AJAX 的 ajax 实现微信网页授权登录的方法 项目背景 因为项目采用前后端完全分离方案,所以,无法使用常规的微信授权登录作法,需要采用 ajax 实现微信授权登录. 需求分析 因为本人是一个ph ...

  9. 微信网页扫码登录和公众号网页授权登录的比较

    最近在做PC二维码扫码登录的功能,总结了一些问题 # 主要区别 二者的主要区别: 差异 PC网页扫码登录 公众号网页授权登录 账号要求 需要开放平台账号创建网站应用 一个认证过的服务号就可以(也可以使 ...

最新文章

  1. 开放产品开发(OPD):Archi 汉化工具下载
  2. 【Crash Course Psychology】1. Intro to psychology笔记
  3. mvc HtmlHelper
  4. 快递春节停运时间表刷屏,假的!但或涨价10-20元
  5. POJ - 3784 Running Median(动态维护中位数)
  6. C++设计模式解析之单例模式解析
  7. 相机模型之世界坐标、相机坐标、归一化坐标、图像坐标、像素坐标、内参、外参、转换关系总结
  8. Spring Cloud中的@EnableDiscoveryClient注解和@EnableEurekaClient注解
  9. HTTP 如何传输大文件
  10. 每日一乐,健康多滋味~~
  11. Python学习路程day9
  12. KVM命令行使用工具(virsh)详解。
  13. 无线桥接怎么设置网关和dns服务器,两个无线路由器进行桥接的设置方法
  14. oracle设置密码永不过期
  15. PyTorch实战使用Resnet迁移学习
  16. 大数据Hadoop之——EFAK和Confluent KSQL简单使用(kafka listeners 和 advertised.listeners)
  17. 简洁,简单,再简化...
  18. 扫描仪CCC认证注意事项及标准依据
  19. 安装RHEL7.5超详细教程
  20. 一文读懂设计模式--适配器模式

热门文章

  1. mikrotik dhcp server
  2. linux用户及权限详解(20170425)
  3. CentOS6.4系统启动失败故障排查
  4. STM32串口寄存器操作(转)
  5. OSSIM学习-英汉对照注释
  6. 最重要的7个Drupal内核模板文件
  7. $HOME/$user/.权限导致用户无法登陆图形界面
  8. 添加请求头 retrofit_RxJava 与 Retrofit 结合的最佳实践
  9. python3的pyqt5 qtablewidget按数据大小排列_InnoDB为什么要选择B+树来存储数据?
  10. VSCode 开发Vue必备插件