微信公众号的授权及分享

Posted 爱上码

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信公众号的授权及分享相关的知识,希望对你有一定的参考价值。

最近忙着做一个登录公众号获取用户信息及用户分享后可以得到积分。

首先用户点击一个链接

window.location.href="https://open.weixin.qq.com/connect/oauth2/authorize?appid=#&redirect_uri=#&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"

appid是你公众号里的

redirect_ur是调用微信返回数据,咱们系统接收code的方法,这个必须要是外网可以访问的  http://www.....com/OhdWeixin/UserAction!getPersonal.action

response_type=code

cope=snsapi_userinfo 

state=STATE#wechat_redirect"

1.获取用户信息de action;可以在这一步就获取用户的信息 放在自己的库里 ,我们需求是要在登录的时候把登录信息一起放在一个库里,

public String getPersonal() throws Exception {
        String result="login";
        BindUserFace bindUserFace = this.getBeanByBeanClass(BindUserFace.class);
        String code = request.getParameter("code");           //用户同意授权后,能获取到code
            if(!"authdeny".equals(code) && code!=null){
                //获取网页授权accexx_token
                WeixinOauth2TokenView weixinOauth2TokenView = AdvancedUtil.getOauth2AccessToken(CommonUtil.appId, CommonUtil.appSecret, code);
                if(weixinOauth2TokenView!=null) {
                    //用户标识
                    String openId = weixinOauth2TokenView.getOpenId();
                    //网页授权接口访问凭证
                    String accessToken = weixinOauth2TokenView.getAccessToken();
                    session.put("openid",openId);
                    session.put("accessToken",accessToken);
                    BindWxUser bindWxUser=bindUserFace.findBindWxUser(openId);//openId
                    if(bindWxUser!=null){
                        session.put("bindWxUser",bindWxUser);
                        getMallURL();
                        result="personal";//这是跳到个人中心页面
                    }else{
                        result="login";//如果没有
                    }
                }
            }
        return result;
    }

2.要获取用户的openid   来获取用户的头像:

/**
     * 登录(注册)
     */
    public String login() throws Exception {
        BindUserFace bindUserFace = this.getBeanByBeanClass(BindUserFace.class);
        if(session.get("openid")==null && session.get("accessToken")==null) {
            String code = request.getParameter("code");
            //用户同意授权
            if(!"authdeny".equals(code) && code!=null){
            String accessToken= (String) session.get("accessToken");
            String openid= (String) session.get("openid");
            BindWxUser binUs=bindUserFace.findBindWxUser(openid);//openId
            if(binUs==null){
                //获取用户信息
                String tel=bindWxUser.getMobile();
                bindWxUser=AdvancedUtil.getSNSUserInfo(accessToken,openid);
                bindWxUser.setMobile(tel);
                bindWxUser.setRecommender(recommender);
                bindUserFace.addBindWxUser(bindWxUser);//保存用户信息
                session.put("bindWxUser",bindWxUser);
                getMallURL();
            }
        }
        }
        return "personal";
    }

 

以上是关于微信公众号的授权及分享的主要内容,如果未能解决你的问题,请参考以下文章

微信分享与支付专项课程(公众号小程序小程序云)

微信第三方平台处理授权公众号的网页授权接口

微信公众平台 微信网页授权

微信公众号开发15正式公众号的配置

微信公众号测试账号获取授权须关注

微信授权-授权方式公众号是否关注