精华内容
下载资源
问答
  • 微信小程序怎么获取openId 1、在微信js文件中获取 appid,secret这两个参数在微信公众号管理平台——>开发——>开发设置 wx.login({ success: function (res) { console.log("res.code=====" + res.code); ...
    微信小程序怎么获取openId

    1、在微信js文件中获取
    appid,secret这两个参数在微信公众号管理平台——>开发——>开发设置获取

       wx.login({
          success: function (res) {
            console.log("res.code=====" + res.code);
            if (res.code) {
              //发起网络请求
              wx.request({
                url: 'https://api.weixin.qq.com/sns/jscode2session',
                data:{
                  appid: "小程序ID",
                  secret:"小程序的密钥",
                  js_code:res.code,
                  grant_type:"authorization_code"
                },
                success: function (res) {
                  console.log("openid",res.data)
                }
              })
            } else {
              console.log('获取用户登录态失败!' + res.errMsg)
            }
          }
        })
    

    注意:你开发微信程序中的appid要与你请求参数中的appid一致,上次我就是犯了这个错误

    2、在前端把code传到后台获取openid
    前端代码

      wx.login({
          success: function (res) {
            console.log("res.code=====" + res.code);
            if (res.code) {
              //发起网络请求
              wx.request({
                url: '后端地址?code=' + res.code,
                success: function (res) {
                       console.log(res.data)
                }
              })
            } else {
              console.log('获取用户登录态失败!' + res.errMsg)
            }
          }
        })
    

    后端代码

      @GetMapping("getOpenid")
        public void decodeUserInfo(String code) {
         
            //小程序的appid
            System.out.println("code");
            System.out.println(code);
            String appId = "wx7d8b33e1c20a3497";
            // 小程序的secret
            String appsecret = "a21bdf647fb0add656cddab74633e8be";
    
            //向微信服务器 使用登录凭证 code 获取 session_key 和 openid
            // 请求参数
            String params = "appid=" + appId + "&secret=" + appsecret + "&js_code=" + code + "&grant_type=authorization_code";
    
            // 发送请求
            String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params);
    
    
            JSONObject jsonObject = JSONObject.parseObject(sr);
    
            System.out.println("openid"+jsonObject.get("openid"));
        }
    

    工具类

    public class HttpRequest {
    
        public static void main(String[] args) {
            //发送 GET 请求
            String s = HttpRequest.sendGet("http://v.qq.com/x/cover/kvehb7okfxqstmc.html?vid=e01957zem6o", "");
            System.out.println(s);
    
    //        //发送 POST 请求
    //        String sr=HttpRequest.sendPost("http://www.toutiao.com/stream/widget/local_weather/data/?city=%E4%B8%8A%E6%B5%B7", "");
    //        JSONObject json = JSONObject.fromObject(sr);
    //        System.out.println(json.get("data"));
        }
    
        /**
         * 向指定URL发送GET方法的请求
         *
         * @param url   发送请求的URL
         * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return URL 所代表远程资源的响应结果
         */
        public static String sendGet(String url, String param) {
            String result = "";
            BufferedReader in = null;
            try {
                String urlNameString = url + "?" + param;
                URL realUrl = new URL(urlNameString);
                // 打开和URL之间的连接
                URLConnection connection = realUrl.openConnection();
                // 设置通用的请求属性
                connection.setRequestProperty("accept", "*/*");
                connection.setRequestProperty("connection", "Keep-Alive");
                connection.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 建立实际的连接
                connection.connect();
                // 获取所有响应头字段
                Map<String, List<String>> map = connection.getHeaderFields();
                // 遍历所有的响应头字段
                for (String key : map.keySet()) {
                    System.out.println(key + "--->" + map.get(key));
                }
                // 定义 BufferedReader输入流来读取URL的响应
                in = new BufferedReader(new InputStreamReader(
                        connection.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
                System.out.println("result:"+result);
            } catch (Exception e) {
                System.out.println("发送GET请求出现异常!" + e);
                e.printStackTrace();
            }
            // 使用finally块来关闭输入流
            finally {
                try {
                    if (in != null) {
                        in.close();
                    }
                } catch (Exception e2) {
                    e2.printStackTrace();
                }
            }
            return result;
        }
    
        /**
         * 向指定 URL 发送POST方法的请求
         *
         * @param url   发送请求的 URL
         * @param param 请求参数,请求参数应该是 name1=value1&name2=value2 的形式。
         * @return 所代表远程资源的响应结果
         */
        public static String sendPost(String url, String param) {
            PrintWriter out = null;
            BufferedReader in = null;
            String result = "";
            try {
                URL realUrl = new URL(url);
                // 打开和URL之间的连接
                URLConnection conn = realUrl.openConnection();
                // 设置通用的请求属性
                conn.setRequestProperty("accept", "*/*");
                conn.setRequestProperty("connection", "Keep-Alive");
                conn.setRequestProperty("user-agent",
                        "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
                // 发送POST请求必须设置如下两行
                conn.setDoOutput(true);
                conn.setDoInput(true);
                // 获取URLConnection对象对应的输出流
                out = new PrintWriter(conn.getOutputStream());
                // 发送请求参数
                out.print(param);
                // flush输出流的缓冲
                out.flush();
                // 定义BufferedReader输入流来读取URL的响应
                in = new BufferedReader(
                        new InputStreamReader(conn.getInputStream()));
                String line;
                while ((line = in.readLine()) != null) {
                    result += line;
                }
            } catch (Exception e) {
                System.out.println("发送 POST 请求出现异常!" + e);
                e.printStackTrace();
            }
            //使用finally块来关闭输出流、输入流
            finally {
                try {
                    if (out != null) {
                        out.close();
                    }
                    if (in != null) {
                        in.close();
                    }
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }
            return result;
        }
    }
    
    
    展开全文
  • 微信订阅号没有高级接口怎么获取openid,怎么才可以实现?
  • 1 packagecom.yulv.utils;23 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStream;6 importjava.io.InputStreamReader;7 importjava.io.OutputStream;8 importjava.io.OutputStr...

    1 packagecom.yulv.utils;2

    3 importjava.io.BufferedReader;4 importjava.io.IOException;5 importjava.io.InputStream;6 importjava.io.InputStreamReader;7 importjava.io.OutputStream;8 importjava.io.OutputStreamWriter;9 importjava.net.HttpURLConnection;10 importjava.net.InetSocketAddress;11 importjava.net.Proxy;12 importjava.net.URL;13 importjava.net.URLConnection;14 importjava.util.Iterator;15 importjava.util.Map;16

    17

    18 public classHttpRequestor {19 private String charset = "utf-8";20 private Integer connectTimeout = null;21 private Integer socketTimeout = null;22 private String proxyHost = null;23 private Integer proxyPort = null;24

    25 /**

    26 * Do GET request27 *@paramurl28 *@return

    29 *@throwsException30 *@throwsIOException31 */

    32 public String doGet(String url) throwsException {33

    34 URL localURL = newURL(url);35

    36 URLConnection connection =openConnection(localURL);37 HttpURLConnection httpURLConnection =(HttpURLConnection)connection;38

    39 httpURLConnection.setRequestProperty("Accept-Charset", charset);40 httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");41

    42 InputStream inputStream = null;43 InputStreamReader inputStreamReader = null;44 BufferedReader reader = null;45 StringBuffer resultBuffer = newStringBuffer();46 String tempLine = null;47

    48 if (httpURLConnection.getResponseCode() >= 300) {49 throw new Exception("HTTP Request is not success, Response code is " +httpURLConnection.getResponseCode());50 }51

    52 try{53 inputStream =httpURLConnection.getInputStream();54 inputStreamReader = new InputStreamReader(inputStream,"UTF-8");55 reader = newBufferedReader(inputStreamReader);56

    57 while ((tempLine = reader.readLine()) != null) {58 resultBuffer.append(tempLine);59 }60

    61 } finally{62

    63 if (reader != null) {64 reader.close();65 }66

    67 if (inputStreamReader != null) {68 inputStreamReader.close();69 }70

    71 if (inputStream != null) {72 inputStream.close();73 }74

    75 }76

    77 returnresultBuffer.toString();78 }79

    80 /**

    81 * Do POST request82 *@paramurl83 *@paramparameterMap84 *@return

    85 *@throwsException86 */

    87 public String doPost(String url, Map parameterMap) throwsException {88

    89 /*Translate parameter map to parameter date string*/

    90 StringBuffer parameterBuffer = newStringBuffer();91 if (parameterMap != null) {92 Iterator iterator =parameterMap.keySet().iterator();93 String key = null;94 String value = null;95 while(iterator.hasNext()) {96 key =(String)iterator.next();97 if (parameterMap.get(key) != null) {98 value =(String)parameterMap.get(key);99 } else{100 value = "";101 }102

    103 parameterBuffer.append(key).append("=").append(value);104 if(iterator.hasNext()) {105 parameterBuffer.append("&");106 }107 }108 }109

    110 System.out.println("POST parameter : " +parameterBuffer.toString());111

    112 URL localURL = newURL(url);113

    114 URLConnection connection =openConnection(localURL);115 HttpURLConnection httpURLConnection =(HttpURLConnection)connection;116

    117 httpURLConnection.setDoOutput(true);118 httpURLConnection.setRequestMethod("POST");119 httpURLConnection.setRequestProperty("Accept-Charset", charset);120 httpURLConnection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");121 httpURLConnection.setRequestProperty("Content-Length", String.valueOf(parameterBuffer.length()));122

    123 OutputStream outputStream = null;124 OutputStreamWriter outputStreamWriter = null;125 InputStream inputStream = null;126 InputStreamReader inputStreamReader = null;127 BufferedReader reader = null;128 StringBuffer resultBuffer = newStringBuffer();129 String tempLine = null;130

    131 try{132 outputStream =httpURLConnection.getOutputStream();133 outputStreamWriter = newOutputStreamWriter(outputStream);134

    135 outputStreamWriter.write(parameterBuffer.toString());136 outputStreamWriter.flush();137

    138 if (httpURLConnection.getResponseCode() >= 300) {139 throw new Exception("HTTP Request is not success, Response code is " +httpURLConnection.getResponseCode());140 }141

    142 inputStream =httpURLConnection.getInputStream();143 inputStreamReader = newInputStreamReader(inputStream);144 reader = newBufferedReader(inputStreamReader);145

    146 while ((tempLine = reader.readLine()) != null) {147 resultBuffer.append(tempLine);148 }149

    150 } finally{151

    152 if (outputStreamWriter != null) {153 outputStreamWriter.close();154 }155

    156 if (outputStream != null) {157 outputStream.close();158 }159

    160 if (reader != null) {161 reader.close();162 }163

    164 if (inputStreamReader != null) {165 inputStreamReader.close();166 }167

    168 if (inputStream != null) {169 inputStream.close();170 }171

    172 }173

    174 returnresultBuffer.toString();175 }176

    177 private URLConnection openConnection(URL localURL) throwsIOException {178 URLConnection connection;179 if (proxyHost != null && proxyPort != null) {180 Proxy proxy = new Proxy(Proxy.Type.HTTP, newInetSocketAddress(proxyHost, proxyPort));181 connection =localURL.openConnection(proxy);182 } else{183 connection =localURL.openConnection();184 }185 returnconnection;186 }187

    188 /**

    189 * Render request according setting190 *@paramrequest191 */

    192 private voidrenderRequest(URLConnection connection) {193

    194 if (connectTimeout != null) {195 connection.setConnectTimeout(connectTimeout);196 }197

    198 if (socketTimeout != null) {199 connection.setReadTimeout(socketTimeout);200 }201

    202 }203

    204 /*

    205 * Getter & Setter206 */

    207 publicInteger getConnectTimeout() {208 returnconnectTimeout;209 }210

    211 public voidsetConnectTimeout(Integer connectTimeout) {212 this.connectTimeout =connectTimeout;213 }214

    215 publicInteger getSocketTimeout() {216 returnsocketTimeout;217 }218

    219 public voidsetSocketTimeout(Integer socketTimeout) {220 this.socketTimeout =socketTimeout;221 }222

    223 publicString getProxyHost() {224 returnproxyHost;225 }226

    227 public voidsetProxyHost(String proxyHost) {228 this.proxyHost =proxyHost;229 }230

    231 publicInteger getProxyPort() {232 returnproxyPort;233 }234

    235 public voidsetProxyPort(Integer proxyPort) {236 this.proxyPort =proxyPort;237 }238

    239 publicString getCharset() {240 returncharset;241 }242

    243 public voidsetCharset(String charset) {244 this.charset =charset;245 }246 }

    展开全文
  • 有很多用户想要知道怎么获得微信小程序openid信息,那么下面通过这篇文章给大家介绍一下应该怎么操作,一起往下看吧!类别:编程工具 大小:3.18M 语言:简体中文评分:6首先,调用接口...然后,获取openid,拿到上...

    有很多用户想要知道怎么获得微信小程序openid信息,那么下面通过这篇文章给大家介绍一下应该怎么操作,一起往下看吧!

    类别:编程工具   大小:3.18M    语言:简体中文

    评分:6

    首先,调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。

    然后,获取openid,拿到上一步获取的code,结合小程序 appid 和 secret 请求接口一同被返回的,还包括 session_key,其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。

    然后,直接使用wx.getUserInfo是不能获取更多的信息的,如微信用户的openid。

    然后,需要发送获取到的code进行请求到微信的后端API,进行用户解密之类的操作才可以获取,根据文档,只需要进行一个get请求到如下地址。

    然后,需要发送获取到的code进行请求到微信的后端API,才能正确获取更多信息,这也许是为了安全起见。

    最后,都要求判断登录的用户是不是唯一的,这也就需要使用微信账号唯一的openid来验证了。

    好了,以上就是小编为大家带来关于“微信小程序openid获取方法”的全部内容介绍了,设置步骤还是比较简单的,希望能帮助到你。

    展开全文
  • 为了这个操作我也是碰了一鼻子灰,今天就为大家介绍一下公众号h5页面怎么获取openid 首先,需要用到公众号的appid,其次需要去公众号里配置好h5页面的域名,这来就不进行过多介绍了,我们直接上代码 我们需要两个...

    微信公众号里会嵌套h5页面然后跳转,有时候我们就需要用到用户的openid。为了这个操作我也是碰了一鼻子灰,今天就为大家介绍一下公众号h5页面怎么获取openid
    首先,需要用到公众号的appid,其次需要去公众号里配置好h5页面的域名,这来就不进行过多介绍了,我们直接上代码
    我们需要两个参数,
    1,apid
    2,从定向地址

    因为h5页面不在公众号内,想要获取openid就必须跳转到微信官方给的链接上,然后链接上会带有code跳转回来,我们将code从链接上截取下来传给后端,前端是不能直接获取openid的
    授权有两种方式,一个是静默授权一个是需要用户手动授权,具体区别可以去微信公众平台查看,我这里只做业务
    链接是这个:

    `https://open.weixin.qq.com/connect/oauth2/authorizeappid=${user_appid}&redirect_uri=${localhost}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`;
    

    这来需要注意,user_appid是需要手动填写的,还有localhost是地址,需要跳转回来的地址
    下面是我实现的代码

     getCode() {
          let user_appid = "wxf5f771aefc9b3af4"; //个人开发者appid
          let local = window.location.href; //重定向地址
          let wx_code = this.getUrlParam("code"); // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openId
    
          console.log("local:", local);
          //判断有没有code
          if (wx_code == null || wx_code === "") {
            console.log("没有code跳转");
            //获取code的地址。获取成功重定向后地址栏中将会带有code
            window.location.href = `https://open.weixin.qq.com/connect/oauth2/authorize?appid=${user_appid}&redirect_uri=${encodeURIComponent(
              local
            )}&response_type=code&scope=snsapi_userinfo&state=123#wechat_redirect`;
          } else {
            console.log("有code开始调用接口:", wx_code);
            this.getOpenId(wx_code); //把code传给后台获取用户信息
          }
        },
            //截取code
            //getUrlParam方法就是使用正则截取地址栏里的code,有兴趣可以研究一下,没兴趣直接拿来用
        getUrlParam: function (name) {
          var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
          var r = window.location.search.substr(1).match(reg);
          if (r != null) return unescape(r[2]);
          return null;
        },
         getOpenId(code) {
    		//这里调用后端给的接口吧code传过去就好了
    	}
    

    这就是完整的过程

    展开全文
  • 小程序怎么获取用户的openid

    千次阅读 2017-08-17 07:44:18
    小程序支付开发, 在向微信提交统一下单参数里, ...怎么获取openid, 其实小程序openid在很多地方都会用到… 小程序怎么获取用户的openid视频教程在线观看 http://edu.csdn.net/cours
  • 上次说到了微信小程序和ECS之间完成了请求响应,那么接下来我们实现微信小程序访问后端获取Openid&session_key。首先如果你只是自学微信小程序或者不涉及到发布,而不用考虑到区分用户,那么duck不必看这篇文章...
  • 微信小程序越来越热,最近团队写了一个小程序,这篇博客我将讲一下怎么通过java服务端获取到用户的openid。api文档的授权登陆地址:http://developers.weixin.qq.com/miniprogram/dev/api/api-login.html首先我们看...
  • h5怎么获取微信用户openId,h5如何获取微信用户openId

    万次阅读 多人点赞 2016-11-23 09:05:59
    1.获取微信openid; 2.通过openid获取用户信息;无用户信息需要绑定 3.输入手机并确认绑定信息; 4.验证手机短信绑定; 这里主要讲述一下如何获取微信openid 参考链接 一丶进入微信后台配置授权界面,我...
  • 微信-获取openid

    2019-07-23 18:21:00
    第一步 首先把微信的支付流程...开发公众号支付时,在统一下单接口中要求必传用户openid,而获取openid则需要您在公众平台设置获取openid的域名,只有被设置过的域名才是一个有效的获取openid的域名,否则将获取失败...
  • 微信企业号获取openId

    千次阅读 2019-04-25 12:04:16
    1、微信获取openid两种方式 企业获取code、 根据code获取成员信息、 非企业成员可以直接获取到openId,这里不做过多描述; 企业成员取到的只有userId(如文档描述) 微信企业开发者文档如下: ...
  • 怎么获取自己的openid

    2019-10-02 02:00:12
    1.首先通过设备登录网站,不可本地登录 2.通过审查工具本地存储查看即可 转载于:https://www.cnblogs.com/QIQIZAIXIAN/p/7298128.html
  • 展开全部第一步:用户同意授权62616964757a686964616fe4b893e5b19e31333365643661,获取code 引导用户进入授权的URL 修改一些参数在确保微信公众账号拥有授权作用域(scope参数)的权限的前提下(服务号获得高级接口后...
  • 微信小程序未授权的用户获取openId

    千次阅读 2020-03-03 11:15:32
    首先微信小程序在用户未授权的情况下是否可以获取用户的...看一下微信小程序获取openId的API我们应该会一目了然 js_code的值需要前端通过调wx.login获取 前端代码 wx.login({ success (res) { if (res.code) { ...
  • // 获取微信用户的openid和access token public void getOpenid(String code) { final AsyncHttpClient httpClient = Gl.sharedAsyncClient(); RequestParams params = new RequestParams(); params.put("appid", ...
  • 微信自定义菜单,view类型,有个url参数,然后我在这个url网站这边怎么获取到点击的用户的openid,只要openid,能不能不通过OAuth2.0直接获取,让用户无需再点一次授权,如果不能的话,我就不做这玩意了~~~~
  • 已经有微信的公众服务账号相应的appid及redirect url等,想用java获取微信用户的openid,下面这个例子不太完整: http://my.oschina.net/xshuai/blog/293458 哪位介绍一下?
  • 有很多的朋友再问我怎么获取code,openid之类的问题,在这里我就给大家分享一下。 在做微信支付是需要获取openid的,推送模板消息也是需要openid包括其他一些功能分享等也都是需要的,openid是什么呢,这里给大家...
  • 在微信订阅号(不是服务号啊)中的view类型自定义菜单中能拿到openid吗,因为我看文档里面“自定义菜单事件推送”时,说会返回一个XML数据包 ,我怎么解析这个XML...,如果是参数,就问一下怎么在订阅号拿到openid
  • 已经获得code现在要访问 ...返回的JSON数据包如下: ...现在要获取openid,怎么在后台访问这个链接回调后处理json数据,然后筛选出openid,直接赋给变量。 最终目的:string openid=回调后处理筛选好的openid。
  • 微信小程序之java服务端获取openid

    千次阅读 2018-05-17 13:43:29
    微信小程序越来越热,最近团队写了一个小程序,这篇博客我将讲一下怎么通过java服务端获取到用户的openid。api文档的授权登陆地址:http://developers.weixin.qq.com/miniprogram/dev/api/api-login.html首先我们看...
  • 我是刚毕业小白,现在要做一个网页,扫码后获取openid后,直接判断是否已经关注, 若是关注就,直接跳转到已经写好的网页,没有关注就先获取授权然后,关注后,跳转页面
  • 文章的一开始,我先解释下微信公众号的openIdopenId是微信对于用户的唯一辨识,只要有用户关注你的公众号,微信会通过公众号和...后面就讲讲怎么获取openId把,我下面先讲一种简易的方式(还有一种后续有空加上

空空如也

空空如也

1 2 3 4 5 ... 10
收藏数 197
精华内容 78
关键字:

怎么获取openid