2019-09-16 14:32:51 impossible1994727 阅读数 219
  • 微信公众平台深度开发v2.0第5季——网页授权获取用户...

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    18911 人正在学习 去看看 翟东平

1、获取用户基本信息(不包括openid)

使用button按钮即可获取,type=“getUserInfo”。可获取用户昵称,头像,城市,国家,性别,语言,省。

不需要请求后台接口。

 <button open-type="getUserInfo" bindgetuserinfo="getUserInfo">确认</button>

当用户点击允许的时候,获取到的getUserInfo返回的信息为下图:

2、 获取用户的openid,session_key

通过wx.login获取登录凭证code,将code传给后台获取openid,和session_key

 // 登录
    wx.login({
      success: res => {
        console.log(res,'login')
        wx.request('url',{code:res.code},function(res){
          var userinfo=res.data.data;
          wx.setStorageSync('userinfo',userinfo);
        })
      }
    })

后台返回信息为:

 

2016-09-16 17:02:50 qq_21405949 阅读数 5620
  • 微信公众平台深度开发v2.0第5季——网页授权获取用户...

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    18911 人正在学习 去看看 翟东平

加入社群,共同学习,帮你解答你所遇到的问题。:

在这里插入图片描述
微信小程序交流qq群
加入群聊【微信小程序❶群】
微信小程序❶群
PHP 微信开发(获取用户信息)

获取用户信息的大致算法是

用户授权登录第三方网站,

重点:scope参数:

snsapi_basic 静默登录,不需要用户授权,只能获取到openid;

snsapi_userinfo ,需要用户点击授权,能获取到openid和所有用户信息;

第一步:先获取用户的code值;
第二步:根据code值去获取access_token,每次请求的值都不一样,如果没有使用,每五分钟更新一次;
第三步:根据access_token获取用户信息;

1.获取code代码实现:

这里写图片描述

这里写图片描述

#getcode.php

if(isset($_SESSION['user'])){
							print_r($_SESSION['user']);
							exit;
						}
						
$appid='wx1d7c6fcd6131143b3';

$redirect_url="http://www.antfortune.vip/callback.php";
$scope='snsapi_userinfo';//获取的方式;


$url='https://open.weixin.qq.com/connect/oauth2/authorize?'
appid='.$appid.'&redirect_uri='.urlencode($redirect_url).'&response_type=code&scope='.$scope.'&state=123#wechat_redirect';				
header("Location:".$url);

2、根据code获取access_token和openid

#getOpenid.php

<?php
//获取用户openid
$appid="your appid";
$appsecret="your appsecret";
$code=$_GET['code'];



function getOpenID($appid,$appsecret,$code){
$url="https://api.weixin.qq.com/sns/oauth2/access_token?appid=".$appid."&secret=". 
$appsecret."&code=".$code."&grant_type=authorization_code";

$weixin=file_get_contents($url);//通过code换取网页授权access_token
$jsondecode=json_decode($weixin); //对JSON格式的字符串进行编码
$array = get_object_vars($jsondecode);//转换成数组
$openid = $array['openid'];//输出openid
return $openid;
}

echo getOpenID($appid,$appsecret,$code);


推荐微信小程序阅读:

【十一】 10分钟精通微信小程序 | 云函数管理端
【十】 10分钟精通小程序 | 云函数异步返回结果
【九】10分钟精通微信小程序 | 云函数
【八】 10分钟精通微信小程序云存储 | 云存储
【七】10分钟精通微信小程序 | 增删改查
【六】10分钟精通微信小程序 | 增删改查
【五】10分钟精通微信小程序 | 云数据库增删改查
【四】10分钟精通微信小程序 | 云控制台
【三】10分钟精通微信小程序 | 光速入门
【二】10分钟精通微信小程序云开发 | 多图上传并存储路径到云数据库
【一】10分钟精通微信小程序 | 获取用户openid

2018-12-20 11:32:37 weixin_44185377 阅读数 1555
  • 微信公众平台深度开发v2.0第5季——网页授权获取用户...

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    18911 人正在学习 去看看 翟东平

微信开发者工具调试微信网页授权,点击‘登录’按钮无效

问题描述

h5页面需要获取微信用户信息,参考 微信开发者文档,一步步走到用开发者工具调试页面,却发现点击登录按钮没有反应!如下
微信授权页面
看日志信息
在这里插入图片描述
好吧,说这个图片路径是http,而应该是https,可是这是微信自己的页面啊,怎么改???
然鹅不是这个原因,偶然发现点击按钮上边缘是有效的,点击之后重定向页面,跟文档描述的一模一样。为什么点击上边缘有效,而点击按钮无效?如果你也是这样,那么请打开电脑设置—字体大小–看看是不是125%???
现在,把字体设置成100%,重新打开微信开发者工具,再去调试上面的页面,你会惊喜地发现,点按钮可以了。

原因

电脑设置的字体大小(非100%)的时候,会影响微信开发者工具dom节点事件绑定的位置,根据表现来看,并不影响渲染。

补充一下

过程中call_me_small_pure的博客 给了很大帮助,感谢!

2016-12-26 14:30:19 u014783753 阅读数 923
  • 微信公众平台深度开发v2.0第5季——网页授权获取用户...

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    18911 人正在学习 去看看 翟东平


最近在做一个微信公众号的项目,和微信交互,获取用户基本信息是基本需求。获取用户基本信息有很多途径,现在我们讨论的是“网页授权获取用户基本信息”这种方式。

文章需要参考微信开发者文档:点击打开链接

另,会把部分java实现代码贴出来供参考。

微信公众平台通过OAUTH认证获取用户信息,这个过程大体分为以下几个步骤:

1、根据appid以及回调url获取code(时效==5min);

2、根据code获取access_token(时效in(1天、7天、30天、90天));

3、根据access_token获取用户基本信息;

具体例子如下:

1、根据appid和回调url获取code。

     假如微信公众平台配置的业务回调url为:"https://myreturn.com.cn"、appid为:"fdsaadeicekandead";

    再结合文章前边连接给出的文档,那么我们需要请求的url为:

https://open.weixin.qq.com/connect/oauth2/authorize?appid=fdsaadeicekandead&redirect_uri=https%3A%2F%2FmySite/myreturn&response_type=code&scope=snsapi_base&state=123#wechat_redirect

   发起请求的代码

@RequestMapping("/loginWx/")
	public ModelAndView initWxLogin() {
		try {
			String url = "
https://open.weixin.qq.com/connect/oauth2/authorize?appid=fdsaadeicekandead&redirect_uri=https%3A%2F%2FmySite/myreturn&response_type=code&scope=snsapi_base&state=123#wechat_redirect";
ModelAndView modelAndView = new ModelAndView(url);return modelAndView;} catch (UnsupportedEncodingException e) {e.printStackTrace();return new ModelAndView("error");}}



2、根据code获取access_token的代码如下:

@RequestMapping(value="/myreturn")
	public ModelAndView myreturn(String code, String state){
		if (null != code) {
			try {
                            HttpUriRequest httpUriRequest = RequestBuilder.post()
				.setUri("https://api.weixin.qq.com/sns/oauth2/access_token")
				.addParameter("appid", appid)
				.addParameter("secret", secret).addParameter("code", code).addParameter("grant_type", "authorization_code").build();
				Token token = httpClient.execute(httpUriRequest , responseHandler,HttpClientContext.create());				
			} catch (Exception e) {
				e.printStackTrace();
			}
		
			return new ModelAndView("跳转的url");
		
		}
	}
Toke类参照给出的连接定义即可;


3、根据access_token获取用户的基本信息:

HttpUriRequest httpUriRequest = RequestBuilder.post()
				.setUri(BASE_URI+"/sns/userinfo")
/*				.setUri(BASE_URI+"/cgi-bin/user/info")
*/				.addParameter(getATPN(),access_token)
				.addParameter("openid",openid)
				.addParameter("lang","zh_CN")
				.build();
User user = httpClient.execute(httpUriRequest , responseHandler,HttpClientContext.create());

User参照给出的链接指出的用户信息定义即可;




2017-03-06 11:27:24 zhuming3834 阅读数 4550
  • 微信公众平台深度开发v2.0第5季——网页授权获取用户...

    “微信公众平台深度开发Java版 v2.0”系列课程共有6季,使用JAVA语言,系统讲解微信公众平台订阅号、服务号官方列出的全部功能接口,包括:自定义菜单、个性化菜单(按需定制菜单)、群发消息、客服消息(有限次消息推送)、模板消息接(无限次消息推送)、微信网页开发(微信WEB开发、微信游戏)、微信JSSDK开发、用户管理、获取用户基本信息、网页授权获取用户基本信息(通过WEB得到用户信息)、二维码(临时二维码、永久二维码)、事件推送、接收普通消息、被动回复用户消息,等知识点。 以及,针对微信公众号开发的服务端架构设计方案。课程以微信公众号开发视角,讲解JAVA开发微信公众号所需的框架、第三方工具。 购买套餐还赠送经典微信开发课程——[微信公众号_独立知识点]环境搭建。该课程针对各种复杂的网络环境,讲解如何构建开发环境,已解决“没有服务器”、“没有固定IP”等开发者遇到的窘境。 课程采用独立知识点讲解,一个知识点,一组课程,真正做到“简单、高效、”以短的时间、实现的学习。更多课程信息请访问CSDN。网址:http://edu.csdn.net/lecturer/631 “微信公众平台企业号开发Java版”陆续上线。 详情 qq2326321088

    18911 人正在学习 去看看 翟东平

流程

  1. 用户扫码或者直接点击链接进入我们的入口页面;
  2. 进入授权登录页面,用户点击授权登录按钮;
  3. 微信会自动将我么的网页授权域名后增加参数;
  4. 根据微信给的code去获取当前登录的微信用户的用户信息。

流程图

具体操作过程

1.配置网页授权域名
图1
图2
这里的域名设置只能设置一个,要求就按照微信的操作就可以。由于这个域名还是公司的,所以这里都马赛克处理了。
我们需要确保我们获取了权限
开发–>权限接口–>网页服务–>网页授权
图
2.配置txt路径可以访问
我的项目目录:
图3
微信的要求:wx.qq.com/mp/MP_verify_2poeJ5jQBozaGbNV.txt
我使用的Node.js+Express的框架,可以看这里之前的一些文章Node.js这里有Express的安转和新建项目、路由等。

router.all('/mp/MP_verify_xxxxx.txt', function(req, res, next) {
    res.sendfile("./wx/MP_verify_xxxxx.txt");
});

当我们在浏览器输入:xxx.cn/mp/MP_verify_xxxxx.txt的时候可以看见里面的信息。这个感觉是微信那边需要验证我们的网页授权域名是否设置正确。
这一步
3.阅读网页网页授权流程
微信网页授权文档大家先仔细看看文档。
- 用户同意获取code
这里我们需要严格的按照微信的要求谁知url路径:
https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect
尤其注意:由于授权操作安全等级较高,所以在发起授权请求时,微信会对授权链接做正则强匹配校验,如果链接的参数顺序不对,授权页面将无法正常访问。这里也就是我在流程介绍里面的第一点介绍的入口页面。
之后会跳转到微信授权登录的页面
图3
点击授权登录按钮之后就会跳转到xx.cn/mp的页面这里我们就可获取到code了。
- 获取用户信息
获取用户信息其实基本都是后台做的事,因为微信不允许我们子啊前台调用微信的接口,不管怎么搞都是跨域,而且微信也说了这个需要在后台操作。
剩下的步骤看文档就很明确了。我的后台代码。

/*
 * 根据code获取微信用户的用户信息
 */
router.get('/mp/getUserInfo', function(req, res, next) {
    var param = req.query || req.params; 
    var code = param.code;
    var url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' + wxConfig.AppID + '&secret=' + wxConfig.Secret + '&code=' + code + '&grant_type=authorization_code';
    request(url, function (error, response, access_token_body) {
        if (!error && response.statusCode == 200) {
            var access_token_data = JSON.parse(access_token_body); 
            // 获取access_token后 就做缓存
            // access_token 有效期是7200s
            var userinfoUrl = 'https://api.weixin.qq.com/sns/userinfo?access_token=' + access_token_data.access_token + '&openid=' + access_token_data.openid + '&lang=zh_CN ';
            request(userinfoUrl, function (error, response, userinfo_body) {
                if (!error && response.statusCode == 200) {
                    var userinfo_data = JSON.parse(userinfo_body); 
                    res.end(JSON.stringify(userinfo_data));
                }
            })
        }
    })
});
前台只需要调用getUserInfo这个接口,传入code就可以获取到了。这里关于access_token的时效性还没处理。 这里我是直接把微信返回的数据给了前台处理。

最后

至此,微信网页开发–获取微信用户信息就介绍完了。
由于是第一次做微信网页开发,中间遇见过跨域的问题(上面有说为什么跨域),也不知道具体流程是怎样的,基本就是一边踩坑一边总结出来的流程。

没有更多推荐了,返回首页