基于springboot框架的微信公众号基础开发(二)----用户授权和微信公众号登录。

基于springboot框架的微信公众号基础开发(二)----用户授权和微信公众号登录。
转载需注明:https://blog.csdn.net/juan1997/article/details/90645553

 /**
	 * 一、第一步:用户同意授权,获取code code说明 :
	 * code作为换取access_token的票据,每次用户授权带上的code将不一样,code只能使用一次,5分钟未被使用自动过期。
	 * 
	 * @param returnUrl
	 * @return
	 */
	@GetMapping("/authorize")
	public String authorize(@RequestParam("returnUrl") String returnUrl) {
		// String url = "http://www.lovezhj.cn";
		String url = returnUrl;
		String redirectURL = wxMpService.oauth2buildAuthorizationUrl(url, WxConsts.OAuth2Scope.SNSAPI_USERINFO,
				URLEncoder.encode(returnUrl));
		log.info("【微信网页授权】获取code,redirectURL={}", redirectURL);
		return returnUrl;

	}
/**
	 * 微信公众号登录
	 * 
	 * @param code
	 * @param state
	 * @return
	 * @throws Exception
	 */
	@GetMapping("/login")
	public R login(@RequestParam("code") String code, @RequestParam("state") String state) throws Exception {
		R result = null;
		log.info("【微信网页授权】code={}", code);
		log.info("【微信网页授权】state={}", state);
		WxMpOAuth2AccessToken wxMpOAuth2AccessToken;
		try {
			// 第二步:通过code换取网页授权access_token
			// 网页授权接口调用凭证,注意:此access_token与基础支持的access_token不同
			wxMpOAuth2AccessToken = wxMpService.oauth2getAccessToken(code);
		} catch (WxErrorException e) {
			log.info("【微信网页授权异常】{}", e);
			throw new Exception(e.getError().getErrorMsg());
		}
		// 第三步:刷新token(如果有需要的时候)
		// 第四步: 用oauth2获取用户信息.拉取用户信息(需scope为 snsapi_userinfo)
		WxMpUser wxMpUser = wxMpService.oauth2getUserInfo(wxMpOAuth2AccessToken, null);

		return result;
	}	
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值