微信授权-获取微信授权后用户信息

 

微信授权登陆:

我采用的是自定义的子菜单:登陆微信公众平台

第一步:用户同意授权、获取code

第二步:通过code换取网页授权access_token

详细步骤参考微信公众号平台

在页面地址输入授权后的url:

eg:

scope为snsapi_userinfo
https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxf0e81c3bee622d60&redirect_uri=http%3A%2F%2Fnba.bluewebgame.com%2Foauth_response.php&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

 访问页面:

微信授权成功后,获取微信用户的基本信息

拉取用户的基本信息,只需要access_token、openid

请求url:

http:GET(请使用https协议) https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

获取用户信息的方法:

 //获取用户的微信头像
    public static String getSnsapiUserinfo(String openId) throws Exception{
    	logger.debug("getAccessToken,accessToken=" + accessToken);
        String url = "https://api.weixin.qq.com/sns/userinfo?access_token="+accessToken+"&openid="+openId+"&lang=zh_CN";
        String webStr = HttpUtil.sendGetRequest(url, HttpUtil.CHARACTER_ENCODING);
		logger.debug("getSnsapiUserinfo,webStr=" + webStr);
		HashMap map = (HashMap) JSONUtil.deserialize(webStr);
		String headimgurl = (String) map.get("headimgurl");
		return headimgurl;
    }

 发生get请求,获取返回的信息

  /**
     * 发送get请求,获取返回html
     * 
     * @param strUrl
     *            请求地址
     * @param encode
     *            页面编码
     * @return
     * @throws Exception
     */
    public static String sendGetRequest(String strUrl, String encode) throws Exception {
        URL newUrl = new URL(strUrl);
        HttpURLConnection hConnect = (HttpURLConnection) newUrl.openConnection();
        InputStream is = hConnect.getInputStream();
        String str = inputStreamToString(is, encode);
        is.close();
        hConnect.disconnect();
        return str;
    }

获取accesstoken和openid 

 //获取企业号调用的临时token
	public static String getAccessToken() throws Exception {
		Date now = new Date();
		if (accessToken != null
				&& accessTokenGetTime != null
				&& now.getTime() - accessTokenGetTime.getTime() <= 1000 * 60 * 30) {
			return accessToken;
		} else {
			String webStr = HttpUtil.sendGetRequest(getTokenUrl(), HttpUtil.CHARACTER_ENCODING);
			logger.debug("getAccessToken,webStr=" + webStr);
			HashMap map = (HashMap) JSONUtil.deserialize(webStr);
			String token = (String) map.get("access_token");
			accessToken = token;
			accessTokenGetTime = now;
			return token;
		}
	}
	
	//通过微信code获取openid
	public static String getOpenId(String code) throws Exception {
			String webStr = HttpUtil.sendGetRequest(getTokenUrlfw(code), HttpUtil.CHARACTER_ENCODING);
			logger.debug("getAccessToken,webStr=" + webStr);
			HashMap map = (HashMap) JSONUtil.deserialize(webStr);
			String openid = (String) map.get("openid");
			accessToken=(String) map.get("access_token");
			return openid;
	}

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
微信H5网页授权是指在使用微信浏览器访问H5网页时通过微信授权登录,获取用户的基本信息。这个过程分为三个步骤:引导用户授权获取授权码、通过授权获取用户信息。 首先,用户进入H5网页后,网页需要引导用户进行授权登录。网页可以通过调用微信JS-SDK中的微信授权接口,弹出微信授权登录的窗口。用户点击确认后,微信会生成一个授权码,并跳转回H5网页。 然后,网页需要使用授权码去微信服务器获取用户的基本信息。网页可以通过HTTP请求,将授权码发送给微信服务器的接口,并附上AppID和AppSecret等参数。微信服务器验证授权码的有效性后,会返回用户的基本信息,如openid、昵称、头像等。 最后,网页可以根据获取的用户基本信息,进行相应的业务操作。比如显示用户的头像和昵称,或者根据openid等唯一标识,将用户与其它业务系统进行关联。 需要注意的是,进行微信H5网页授权需要先申请微信开放平台的开发者账号,并创建一个公众号或移动应用。通过在微信开放平台进行配置,获取AppID和AppSecret等必要的参数,用于网页授权的流程中。 总结起来,微信H5网页授权获取用户基本信息是通过使用微信授权接口,引导用户进行授权登录,再通过授权码和微信服务器进行交互,最终获取用户的基本信息。这个过程可以实现在H5网页上使用微信账号登录,并获取用户信息的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值