如何获取微信密码,如何获取微信openId

2021-04-08 10:14 368 浏览量

获取微信定义

为了识别用户,每个用户都会为每个正式帐户生成一个安全帐户。如果需要共享多个官方账号和移动应用,则需要进入微信开放平台,将这些官方账号绑定到应用。在分配给开放平台帐户之后,在绑定之后,用户可以具有多个不同的公共帐户和应用程序。因此,一个官方帐户下的微信帐户没有变化。如果相应的官方帐户被更改,它将是另一个。而且只能获取在微信自己的浏览器中打开的项目。

准备条件

因为一个微信用户对应一个官方帐户,所以您必须首先拥有一个官方帐户和一个可从访问的域名。我的官方帐户类型是企业帐户。这是一个企业帐户的示例。

获取所需的官方帐户的总和(登录到公共平台进行开发----->基本配置中的开发人员ID()和开发人员密码()是)。

下一步是设置网页的授权域名(登录到公共平台设置----->官方帐户设置----->功能设置----->授权域名根据步骤操作和设置网页的域名),此域名是您获得的Web项目发布的域名。请注意,服务器必须在端口80上运行。

基本过程:

作为用户信息的一部分,需要调用微信的两个开放式授权接口来获取信息,并且该接口遵循2. 0协议。开放式授权标准允许用户允许第三方应用程序访问存储在特定网站上的用户私有资源(例如照片,视频,联系人列表),而无需向第三方应用程序提供用户名和密码。我们常用的微信登录,微博登录等功能。英语熟练的学生可以勾选2. 0。

我整理了整个过程并绘制了顺序图。

.png

qq密码更改后微信密码_如何获取微信密码_微信公众号登陆密码怎么修改密码

其中两个叫做微信验证服务器。

调用接口以获取代码。请注意,此界面仅获取代码,并将参数设置为,因此用户无需确认并关注官方帐户。

我不知道您是否有任何疑问,为什么不直接得到它,还需要获取代码?

因为该代码等效于临时票据,因此可以验证到期时间,可用信息的内容,微信用户等。

获取代码作为参数,加上和,然后调用接口以获取它。

请注意,应将更重要的参数放在后台进行请求。返回的重要参数相同,您可以获取用户的基本信息,位置,性别等。我们只谈论在这里得到它。原理相似。我想参考微信网页授权。

代码前端

    function openId(){
        //测试
        var callbackUrl = link.skip + itemId;
        var appid = link.appid;
        var redirect_uri = encodeURI(callbackUrl);
        var code = requestUtil.getParameter('code');
        if (code && localStorage.getItem('code') != code) {
          //微信回调含code调用免登陆接口,否则跳转微信验证
          $.ajax({
            type: 'get',
            url: link.path+"/v1/wechatUser/info?code=" + code,
            async: false,
            success: function (res) {
                if(res.code == 1000) {
                    localStorage.setItem('code', code);
                    var openId = res.data.openId;
                    localStorage.setItem('openId', openId);
                }
            }
          });
        } else {
            window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + appid + '&redirect_uri=' + redirect_uri  + '&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect';
        }
    }

后端

    public void getOpenId(HttpServletRequest request, HttpServletResponse response,String code) throws UnsupportedEncodingException {
        response.setContentType("text/html");
        request.setCharacterEncoding("UTF-8");
        response.setCharacterEncoding("UTF-8");
        Map params = new HashMap();
        params.put("secret", "");
        params.put("appid", "");
        params.put("grant_type", "authorization_code");
        params.put("code", code);
        String result = HttpGetUtil.httpRequestToString(
                "https://api.weixin.qq.com/sns/oauth2/access_token", params);
        JSONObject jsonObject = JSONObject.parseObject(result);
        String openid = jsonObject.get("openid").toString();
        System.out.println("得到的openid为:"+openid);
    }

 static class HttpGetUtil {
        public static String httpRequestToString(String url,
                                                 Map params) {
            String result = null;
            try {
                InputStream is = httpRequestToStream(url,  params);
                BufferedReader in = new BufferedReader(new InputStreamReader(is,
                        "UTF-8"));
                StringBuffer buffer = new StringBuffer();
                String line = "";
                while ((line = in.readLine()) != null) {
                    buffer.append(line);
                }
                result = buffer.toString();
            } catch (Exception e) {
                return null;
            }
            return result;
        }
        private static InputStream httpRequestToStream(String url,
                                                       Map params) {
            InputStream is = null;
            try {
                String parameters = "";
                boolean hasParams = false;
                for(String key : params.keySet()){
                    String value = URLEncoder.encode(params.get(key), "UTF-8");
                    parameters += key +"="+ value +"&";
                    hasParams = true;
                }
                if(hasParams){
                    parameters = parameters.substring(0, parameters.length()-1);
                }
                url += "?"+ parameters;
                URL u = new URL(url);
                HttpURLConnection conn = (HttpURLConnection) u.openConnection();
                conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                conn.setRequestProperty("Accept-Charset", "UTF-8");
                conn.setRequestProperty("contentType", "utf-8");
                conn.setConnectTimeout(50000);
                conn.setReadTimeout(50000);
                conn.setDoInput(true);
                //设置请求方式,默认为GET
                conn.setRequestMethod("GET");
                is = conn.getInputStream();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return is;
        }
    }

问题补充界面:该界面只能通过微信或微信开发工具打开(需要其他开发权限)。接口:如果返回错误,则是因为使用了该代码,并且该代码只有一个生存期,用完后将无效。如果显示该代码,请检查与接口1相关的代码,该代码是否已保存,等等。谢谢

感谢您阅读本文。如果您有任何疑问或不清楚,请留言或添加。

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:如何获取微信密码,如何获取微信openId |