`
springcloud微服务框架
  • 浏览: 24619 次
文章分类
社区版块
存档分类
最新评论

java 微信授权登录配置

 
阅读更多

官网地址:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

官网提供的四个步骤

  1. 第一步:用户同意授权,获取code
  2. 第二步:通过code换取网页授权access_token
  3. 第三步:刷新access_token(如果需要)
  4. 第四步:拉取用户信息(需scope为 snsapi_userinfo)
  5. 附:检验授权凭证(access_token)是否有效

一、获取code

  • 所需要的参数

image

  • 授权效果

image

  • 错误码的返回

image

二、获取access_token

第一步会获得一个微信返回的code,拿着这个CODE 还有APPID还有公钥往微信发送请求

    // 1.调用getHTMLAccessToken
	JSONObject htmlAccessToken = WeChatUtil.getHTMLAccessToken(code);

	// 2.获取用户授权的微信地址
    public static  final String GET_HTML_ACCESS_TOKEN = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";


    /** java 项目 www.fhadmin.cn
     * 3.根据code获取access_token
     * @param code
     * @return access_token,open_id
     */

    public static JSONObject getHTMLAccessToken(String code) {

        String replace =GET_HTML_ACCESS_TOKEN.replace("APPID", WeChatResources.APPID).replace("SECRET", WeChatResources.APPSECRET).replace("CODE", code);
        log.info("请求url:{}",replace);
        JSONObject jsonObject = HttpUtil.doGet(replace);
        return jsonObject;
    }

    /**
     * 4.发送请求的doGET方法
     */
	    public static JSONObject doGet(String url) {
        HttpClient httpClient = HttpClientBuilder.create().build();
        HttpGet get = new HttpGet(url);
        JSONObject jsonObject = null;

        try {
            HttpResponse response = httpClient.execute(get);
            HttpEntity entity = response.getEntity();
            if (null != entity) {
                String result = EntityUtils.toString(entity);
                jsonObject = JSONObject.fromObject(result);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return jsonObject;
    }


//  5.方法响应成功后获取access_token和openid
Object access_token = htmlAccessToken.get("access_token");
Object openid = htmlAccessToken.get("openid");

 

  • 参数说明

image

  • 返回参数说明

image

三、刷新access_token

  • 由于access_token拥有较短的有效期,当access_token超时后,可以使用refresh_token进行刷新,refresh_token有效期为30天,当refresh_token失效之后,需要用户重新授权。

  • 获取第二步的refresh_token后,请求以下链接获取access_token:
    https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=APPID&grant_type=refresh_token&refresh_token=REFRESH_TOKEN

  • 请求方式同步骤二 用 HttpUtil.doGet(replace)

  • 参数说明

image

  • 返回参数说明

image

四、拉取用户信息

	//1.根据access_token,open_id获取用户信息  从而完成微信的授权登入
    JSONObject userInfo = WeChatUtil.getUserInfo(access_token, openid);


    //2.获取用户信息 openid
    public static  final String GET_USER_INFO = "https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN";

	 /**java 项目 www.fhadmin.cn
     * 3.根据access_token,open_id获取用户信息
     * @return
     */
    public static JSONObject getUserInfo(Object access_token,Object open_id){

        String replace = GET_USER_INFO.replace("ACCESS_TOKEN", access_token.toString()).replace("OPENID", open_id.toString());
        JSONObject jsonObject = HttpUtil.doGet(replace);
        return jsonObject;
    }

 

  • 参数说明

image

  • 返回参数说明

image

  • 检验授权凭证(access_token)是否有效

image

分享到:
评论

相关推荐

    Java实现微信授权登录

    在Java开发中,微信授权登录是一种常见的用户身份验证机制,特别是在构建Web应用时。这个工具包简化了这一过程,使得开发者无需深入理解微信OAuth2.0授权协议的复杂细节就能集成微信登录功能。以下是关于“Java实现...

    java处理小程序授权和app微信授权

    在Java开发中,微信授权和小程序授权是移动应用与微信平台交互的重要环节,主要用于实现用户身份验证和数据安全。本文将详细讲解如何使用Java处理小程序和App的微信授权,以及解析小程序传递的`encryptedData`参数,...

    基于微信登录java案例_java 微信支付

    在本Java案例中,我们关注的是如何实现基于微信登录的功能,并结合微信支付API进行集成。这个项目使用了SpringBoot框架,这是一个广泛应用于构建微服务的轻量级框架,以其便捷的配置、内置服务器和自动配置功能而受...

    java 微信公众号支付、用户授权、推送通知 封装工具类以及公众号后台配置文档

    java 微信公众号支付封装类,传入回调接口、用户openid、订单号、ip、fee即可无脑验签,返回数据直接前端调用。 用户授权获取用户信息,重定向方案设定。 推送通知 封装工具类,传入openid或者 List,可单推和群发。...

    基于Java微信接口

    【基于Java微信接口】是关于使用Java编程语言与微信官方提供的API进行交互的技术主题。在进行这个项目的开发之前,首要的准备工作是确保你的计算机已经安装了Java Development Kit(JDK)。JDK是Java编程的基础,它...

    JAVA微信网页授权.zip

    总的来说,"JAVA微信网页授权.zip"文件可能包含了一个完整的微信授权登录的Java实现,包括关键的HTTP请求和响应处理代码,以及可能的异常处理逻辑。理解以上知识点,将有助于你有效地利用这个资源。

    安卓应用使用微信授权登陆的时候jar包

    `libammsdk.jar`就是微信SDK的一个组成部分,它包含了与微信授权登录相关的类和方法。这个旧版的jar包可能是因为微信官方已经发布了新版本的SDK,但相关的文档尚未更新,使得开发者在尝试使用新版本时遇到困难。 ...

    微信授权登录.rar

    微信授权登录是现代Web应用程序中常见的一种用户身份验证方式,特别是在移动端应用与Web服务集成的场景下。通过微信授权登录,用户可以使用自己的微信账号直接登录到第三方网站或应用,无需另外注册或记忆新的用户名...

    Java企业微信通用开发配置源代码

    本文将深入探讨如何使用Java进行企业微信通用开发配置,以及Servlet在其中的作用。 首先,企业微信(Work WeChat)是腾讯公司为企业打造的一款高效办公平台,它提供了丰富的API接口,允许开发者构建各种定制化的...

    java微信开发API解析(七)-网页开发-微信网页授权

    当用户访问带有微信授权功能的网页时,系统会引导用户跳转到微信服务器进行授权。用户同意后,微信服务器会返回一个授权码(code),开发者需要将这个code通过HTTP请求发送到微信服务器换取access_token和openid。...

    java 微信小程序demo

    Java微信小程序Demo是一个针对初学者的实践项目,旨在帮助他们理解和掌握如何使用Java技术开发微信小程序。微信小程序是一种轻量级的应用开发平台,允许开发者在微信内创建原生体验的应用,而无需安装,用户可以方便...

    Java环境下的微信授权登录实例,仅供参考了解拉取微信授权,获取微信accessToken的过程.rar

    在Java环境下实现微信授权登录的过程涉及多个步骤,主要包括配置微信开发者平台、获取AppID和AppSecret、用户授权、获取access_token以及刷新access_token等。以下是对这个过程的详细阐述: 1. **配置微信开发者...

    微信授权及支付简易demo

    微信授权及支付简易demo是一个基于Java开发的示例项目,旨在帮助开发者理解并实现微信H5的授权登录和支付功能。这个项目包含了完整的代码结构,虽然支付部分由于缺乏实际的参数而不能直接运行,但其设计和逻辑清晰,...

    Java微信登录+websocket.rar

    - **Login.java**:这可能是后端处理登录逻辑的控制器类,负责接收前端请求,进行授权码验证及微信登录操作。 - **ChatMessageHandler.java**:WebSocket的处理器类,用于处理来自客户端的消息,可能也包含发送...

    微信的登录-java后台

    最后,`wxLogin`这个文件可能是实现微信登录功能的代码示例或者相关配置文件,建议仔细研究其中的逻辑和结构,以便更好地理解和实施微信登录功能。在实际开发中,可以结合Spring Boot、Spring Security等框架来简化...

    java微信公众号开发

    springboot项目java开发微信公众号,有网页授权、事件推送、获取用户信息、图片、语音、文字、百度翻译接口,配置好可直接启动,项目内有详细注释

    java微信小程序,java微信小程序

    - **Spring Boot框架**:Java微信小程序的后端通常采用Spring Boot作为基础框架,提供快速开发、自动配置和微服务支持。 - **RESTful API设计**:为了与微信小程序前端进行数据交互,后端需要提供符合RESTful规范...

    java 微信公众号开发

    java 微信公众号开发 # Javen 微信公众号极速开发 实现微信登录,微信支付等接口 配置用户信息成为开发者,授权获取用户信息等邮箱注册、找回密码等

    基于JAVA的微信接口开发—语音识别源码

    1. **微信配置**:源码会包含微信AppID和AppSecret的配置,这是接入微信接口的基础。 2. **OAuth2.0授权**:获取access_token的逻辑,包括获取code、用code换取access_token以及刷新token的逻辑。 3. **语音文件接收...

Global site tag (gtag.js) - Google Analytics