获取微信openid_微信获取openid失败 - CSDN
精华内容
参与话题
  • 获取微信用户的openId

    万次阅读 2014-12-10 16:24:55
    开发框架:struts2(零配置) ...PS:下列获取openid的代码可以在柳峰的《微信公众平台应用开发方法、技巧与案例》的第六章找到。但是书中关于授权域名以及redirect_uri的关联写的不是很详细,在此主

    开发框架:struts2(零配置)

    官方文档下载地址

    https://mp.weixin.qq.com/paymch/readtemplate?t=mp/business/course3_tmpl&lang=zh_CN

    PS:下列获取openid的代码可以在柳峰的《微信公众平台应用开发方法、技巧与案例》的第六章找到。但是书中关于授权域名以及redirect_uri的关联写的不是很详细,在此主要详细介绍了出现问题排错的方向。代码觉得有疑惑的,可以看柳大神的书,或者csdn搜索柳峰找相关博客查看。

    1 首先,我们需要进入我们的服务号,点击左侧栏开发者中心--->修改网页授权获取用户基本信息的值,假设我们对外的ip183.33.212.175tomcat的端口号为8016,这个修改为183.33.212.175:8016


    2 创建WeiXinOauth2Token类。改类具有以下属性:(自行添加getset方法)

    private String accessToken;

    private int expiresIn;

    private String refeshToken;

    private String openId;

    private String scope;

    3 调用微信的授权接口

    https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect


    其中要说明的是,redirect_uri一定是在我们设定网页授权获取用户基本信息的域名下的action,不然微信页面会提示redirect_uri错误(所以,出现该错误,各位应该知道如何排错了)

    官方文档给了下面一段话解释:

    比如需要网页授权的域名为:www.qq.com,配置以后此域名下面的页面http://www.qq.com/music.html、http://www.qq.com/login.html都可以进行 OAuth2.0 鉴权。但http://pay.qq.com、http://music.qq.com、http://qq.com 无法进行 OAuth2.0 鉴权。

    上面一段话是什么意思呢?

    假设我的授权域名为183.33.212.175:8016,那么。我的redirect_uri需要为http://183.33.212.175:8016/wxweb/config/oauth!execute.action特别注意的是前面的http://必须要有,

    不然就提示找不到页面183.33.212.175:8016/wxweb/config /oauth!execute.action?code=XXXXXXXXXX。(这一点被坑了一天)

    4 然后将redirect_uri进行encode,具体代码如下
    public static String urlEncodeUTF8(String source){
                    String result = source;
                    try {
                            result = java.net.URLEncoder.encode(source,"utf-8");
                    } catch (UnsupportedEncodingException e) {
                            e.printStackTrace();
                    }
                    return result;
    }
    requestUrl= https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=snsapi_base&state=STATE#wechat_redirect中的REDIRECT_URI是我们的redirect_uri 进行encode后的值,APPID为你服务号的appid.
    将上面的requestUrl设置为图文链接或者view按钮链接发送给用户。

    5 获取用户openid

    我的redirect_uri对应的action方法为

    public String execute() throws ServletException, IOException{
                    // 将请求、响应的编码均设置为UTF-8(防止中文乱码)
                    HttpServletRequest request = ServletActionContext.getRequest();
                    HttpServletResponse response = ServletActionContext.getResponse();
                    request.setCharacterEncoding("UTF-8");
                    response.setCharacterEncoding("UTF-8");
                    String code = request.getParameter("code");
                    String openId ="";
                    if (!"authdeny".equals(code)) {
                            WeiXinOauth2Token weiXinOauth2Token = AdvancedUtil
                                            .getOauth2AccessToken("wx0953bae287adfeee",
                                                            "8e81dbc44a84a3c290c0cc3759f85421", code);
                            openId = weiXinOauth2Token.getOpenId();
                    }
                    request.getSession().setAttribute("openId", openId);
                    return "index";
    }

    AdvancedUtil的方法如下:
    public static WeiXinOauth2Token getOauth2AccessToken(String appId, String appSecret, String code) {
                    WeiXinOauth2Token wat = new WeiXinOauth2Token();
                    String requestUrl = oauth2Url.replace("APPID", appId).replace("SECRET", appSecret).replace("CODE", code);
                    JSONObject jsonObject = CommonUtil
                                    .httpsRequest(requestUrl, "GET", null);
                    if (null != jsonObject) {
                            try {
                                    wat = new WeiXinOauth2Token();
                                    wat.setAccessToken(jsonObject.getString("access_token"));
                                    wat.setExpiresIn(jsonObject.getInt("expires_in"));
                                    wat.setRefeshToken(jsonObject.getString("refresh_token"));
                                    wat.setOpenId(jsonObject.getString("openid"));
                                    wat.setScope(jsonObject.getString("scope"));
                            } catch (Exception e) {
                                    wat = null;
                                    String errorCode = jsonObject.getString("errcode");
                                    String errorMsg = jsonObject.getString("errmsg");
                                    log.error("获取网页授权凭证失败 errcode{},errMsg", errorCode, errorMsg);
                            }

                    }
                    return wat;
    }
    CommmonUtil相关方法如下
    /**
             * 发送https请求
             *
             * @param requestUrl 请求地址
             * @param requestMethod 请求方式(GET、POST)
             * @param outputStr 提交的数据
             * @return JSONObject(通过JSONObject.get(key)的方式获取json对象的属性值)
             */
    public static JSONObject httpsRequest(String requestUrl, String requestMethod, String outputStr) {
                    JSONObject jsonObject = null;
                    try {
                            // 创建SSLContext对象,并使用我们指定的信任管理器初始化
                            TrustManager[] tm = { new MyX509TrustManager() };
                            SSLContext sslContext = SSLContext.getInstance("SSL", "SunJSSE");
                            sslContext.init(null, tm, new java.security.SecureRandom());
                            // 从上述SSLContext对象中得到SSLSocketFactory对象
                            SSLSocketFactory ssf = sslContext.getSocketFactory();
                            URL url = new URL(requestUrl);
                            HttpsURLConnection conn = (HttpsURLConnection) url.openConnection();
                            conn.setSSLSocketFactory(ssf);
                            conn.setDoOutput(true);
                            conn.setDoInput(true);
                            conn.setUseCaches(false);
                            // 设置请求方式(GET/POST)
                            conn.setRequestMethod(requestMethod);
                            //conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
                            // 当outputStr不为null时向输出流写数据
                            if (null != outputStr) {
                                    OutputStream outputStream = conn.getOutputStream();
                                    // 注意编码格式
                                    outputStream.write(outputStr.getBytes("UTF-8"));
                                    outputStream.close();
                            }
                            // 从输入流读取返回内容
                            InputStream inputStream = conn.getInputStream();
                            InputStreamReader inputStreamReader = new InputStreamReader(inputStream, "utf-8");
                            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
                            String str = null;
                            StringBuffer buffer = new StringBuffer();
                            while ((str = bufferedReader.readLine()) != null) {
                                    buffer.append(str);
                            }
                            // 释放资源
                            bufferedReader.close();
                            inputStreamReader.close();
                            inputStream.close();
                            inputStream = null;
                            conn.disconnect();
                            jsonObject = JSONObject.fromObject(buffer.toString());
                    } catch (ConnectException ce) {
                            log.error("连接超时:{}", ce);
                    } catch (Exception e) {
                            log.error("https请求异常:{}", e);
                    }
                    return jsonObject;
    }
    测试OK后,会得到用户的openid并正确跳转到oauth_index.jsp页面。

    假设用我们sae的应用,授权域名写为searchinfo.sinaapp.com,其中searchinfo是你的应用名称。那么没有encode前的redirect_uri为:http://searchinfo.sinaapp.com/config/oauth!execute.action。
    需要注意的是,你部署的代码中config/oauth!execute.action方法所在版本必须为你应用的默认版本。检测是否可行,直接访问
    searchinfo.sinaapp.com/config/oauth!execute.action,若报500空指针,说明填写正确。找不到方法请自行修改默认版本,找到对应的执行action即可。

    展开全文
  • 简单的实现微信获取openid

    千次阅读 2019-06-13 14:50:53
    置顶2017年11月09日 08:43:03 ...微信公众平台获取openid在公众号的开发中有很多用途,前段时间为实现用户使用公众号在登录一次以后可以免密登陆而使用了openid。开发过程中遇到了一些问题,在这里向需...

     

    置顶 2017年11月09日 08:43:03 

     版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z880698223/article/details/78485243

    微信公众平台获取openid在公众号的开发中有很多用途,前段时间为实现用户使用公众号在登录一次以后可以免密登陆而使用了openid。开发过程中遇到了一些问题,在这里向需要且还没有获取到openid的米娜桑分享一下简单的流程及部分代码,和一些问题的解决方式,给初次接触微信openid的朋友们一个参考。目的只在于获取openid,至于优化及应用上诸君请自由发挥。

     

     

    首先了解openid是什么,一个微信号与一个公众号对应一个固定不变的openid。所以一个微信号在一个公众号下的openid是不变的,如果换了一个对应的公众号,那就是另一个openid了。且只有在微信自带浏览器中打开的项目才可获取到。

    准备:

    首先你要有一个公众号,还有一个外网可访问的域名,我的公众号类型是企业号,这里就以企业号为例了。获取openid需要的公众号的 appid 和 secret(登陆公众平台  开发----->基本配置中的开发者ID(AppID)和 开发者密码(AppSecret)就是)。其次是设置网页授权域名(登陆公众平台  设置----->公众号设置------>功能设置----->网页授权域名 按步骤操作并设置就好),这个域名就是你获取openid的web项目发布的域名,这里注意服务器请一定跑在80端口。

     

    流程:

    1.调用https://open.weixin.qq.com/connect/oauth2/authorize接口获取到code

    2.得到code作为一个参数调用https://api.weixin.qq.com/sns/oauth2/access_token接口获取到openid

     

    因为只是简单的获取到openid,这里只放两个servlet与用到的工具类代码:

    第一个是获取code用的WxCodeServlt

    public class WxCodeServlet extends HttpServlet { 
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
     
            doPost(request, response);
        }
     
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
     
            response.setContentType("text/html");
            response.setCharacterEncoding("UTF-8");
            request.setCharacterEncoding("UTF-8");
                    //这里要将你的授权回调地址处理一下,否则微信识别不了
            String redirect_uri=URLEncoder.encode("/*你的授权回调地址*/", "UTF-8");
                    //简单获取openid的话参数response_type与scope与state参数固定写死即可
            StringBuffer url=new StringBuffer("https://open.weixin.qq.com/connect/oauth2/authorize?redirect_uri="+redirect_uri+
                    "&appid="+/*你的appid*/+"&response_type=code&scope=snsapi_base&state=1#wechat_redirect");
            response.sendRedirect(url.toString());//这里请不要使用get请求单纯的将页面跳转到该url即可


    }

     

    当用户用微信进入我们的网页并调用到WxCodeServlet之后,若参数无误,设置的网页授权域名正确,微信就会重定向页面到我们提交的回调地址,同时我们想要的code也会被传过来

    而这个回调地址就是我们的第二个servlet WxOpenIdServlet

    public class WxOpenIdServlet extends HttpServlet {
     
        private static final long serialVersionUID = 1L;
     
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
                    
            response.setContentType("text/html");
     
            request.setCharacterEncoding("UTF-8");
            response.setCharacterEncoding("UTF-8");
            String code = request.getParameter("code");//获取code
            Map params = new HashMap();
            params.put("secret", "/*你的secret*/");
            params.put("appid", "/*你的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.fromObject(result);
     
            String openid = jsonObject.get("openid").toString();
            System.out.println("得到的openid为:"+openid);
        }
     
     
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
            doGet(request, response);
        }
    }


    在这里我要补充一下了,一位朋友获取到code后去请求却被微信反回了一个错误码"errcode":40125,对应的错误是appsecret无效,可是填写的appsecret与公众平台中的appsecret一致。这个问题在开发时我也遇到过,解决方式是重置appsecret,当初也没在意,现在看来这个问题挺频繁的,所以在这里再补充一下。

     

     


    其中用到了一个工具类HttpGetUtil JSON需要的包这里就不说了

    public class HttpGetUtil {
     
        public static String httpRequestToString(String url, 
                Map<String,String> 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<String, String> 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;
        }
        
    }

    至此如果各个步骤都没有出错的话,当我们的WxCodeServlet被调用后,控制台就能打印出来刚才通过微信打开我们网页并调用到WxCodeServlet的微信用户对应我们公众平台的openid了

     

     

     

    注意问题:

    1.网页授权域名设置如果与提交的回调地址的域名不对应,微信是无法回调到的。

    2.单纯的获取openid使用的授权方式是静态授权,不需要经过用户许可的(用户看不到授权的过程),而想要获取用户的头像昵称等信息是另一种授权(用户端会弹出授权窗口),在此就不介绍了。

    3.提交的回调地址格式为  http://xxxx.xxxx.com/xxxxx/WxOpenIdServlet,使用java.net 包里的URLEncoder.encode("url","utf-8")处理后提交

    4.如遇到问题,请耐心细心的回头按步骤检查资料信息以及代码。

     

    如果有不对的地方欢迎大家指正

    展开全文
  • 微信h5静默、非静默授权获取用户openId的方法和步骤: 一、openId是什么? openId是用户在当前公众号下的唯一标识(‘身份证’),就是说通过这个openId,就能区分在这个公众号下具体是哪个用户。 二、openId有...

    微信h5静默、非静默授权获取用户openId的方法和步骤:

    一、openId是什么?

    openId是用户在当前公众号下的唯一标识(‘身份证’),就是说通过这个openId,就能区分在这个公众号下具体是哪个用户。

    二、openId有什么用?

    假如用户A在当前公众号下购买了一件商品,用户的下单信息肯定要存储到后台数据库,那根据什么进行存储呢?openId是用户在当前公众号下的唯一标识,通过openId和用户的下单购买信息进行键值对的数据绑定。那么我要查询该用户购买过什么商品,就能够通过openId去查询,并且数据是唯一的,不会和另外的用户数据有冲突。

    拓展:UnionID:一个商家或公司可能会有多个公众号,假如用户A同时都关注了这个公司下面的三个公众号,那么这个用户就会有三个openId(一个公众号就对应一个openID)。如果作为开发者的我们,要对这个用户在这三个公众号下消费的数据进行汇总,我怎么获取到这三份数据(同一用户的)?答案是 UnionId,微信开发者文档:如果开发者拥有多个移动应用、网站应用和公众帐号,可通过获取用户基本信息中的unionid来区分用户的唯一性,因为同一用户,对同一个微信开放平台下的不同应用(移动应用、网站应用和公众帐号),unionid是相同的。就是说如果要获取用户在同一公司不同公众号下的数据,后台表结构不但要关联openId,还要关联UnionId。

    三、怎么获取openId?

    (一)登录微信公众平台后台获取公众号的AppId,设置回调地址。

    回调地址设置页面向导:开发>接口权限>网页服务>网页授权>修改。开发的项目需要放到已经解析好服务器域名的服务器下,同时把Mp***.text文件放到服务器根目录下,此时你的服务器必须能联通外网也就是有公网IP,并且80端口是打开的,可以使用阿里云等服务器,默认配置就可以了。

    (二)根据开发需要,静默授权还是非静默授权

       ① 静默授权:snsapi_base,没有弹窗,只能获取用户的openId。

       ②非静默授权:snsapi_userinfo,有弹框弹出需要用户手动点击确认授权。可以获取openId,用户的头像、昵称等

    (三)前端代码,配置的参数要一一对应,获取code,并调用后台接口,把code传给后台

    redirect_uri,这个的意思是:授权完成后再重新回到当前页面(又刷新了一次页面)

    getUrlParam的方法,可以百度下,就是获取页面路径的某个字段所对应的参数。

    如果配置参数一一对应,那么此时已经通过回调地址刷新页面后,你就会看到在地址栏中的code了。

    (四)前端截取地址栏中的code后通过调接口把code传给后台,后台通过code获取openId和用户头像昵称等信息并返回给前端

    为什么,前端不能一起把获取code和获取openId的操作一并做了,还要请求后台,让后台获取openId?

    (五)后台通过 code、AppSecret(公众号平台后台取得)请求微信链接获取openId

    前端具体代码如下,可复制(记得把文中的 window.APPID改为自己公众号的APPID)

    <template>
        <div></div>
    </template>
    
    <script>
    import GetUrlParam from '@/assets/js/util/getUrlParam.js'
    export default {
        name: 'Index',
        data () {
            return {
            }
        },
        created () {
            this.getCode()
        },
        methods: {
            getCode () { // 非静默授权,第一次有弹框
                const code = GetUrlParam('code') // 截取路径中的code,如果没有就去微信授权,如果已经获取到了就直接传code给后台获取openId
                const local = window.location.href
                if (code == null || code === '') {
                    window.location.href = 'https://open.weixin.qq.com/connect/oauth2/authorize?appid=' + window.APPID + '&redirect_uri=' + encodeURIComponent(local) + '&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect'
                } else {
                    this.getOpenId(code) //把code传给后台获取用户信息
                }
            },
            getOpenId (code) { // 通过code获取 openId等用户信息,/api/user/wechat/login 为后台接口
                let _this = this
                this.$http.post('/api/user/wechat/login', {code: code}).then((res) => {
                    let datas = res.data
                    if (datas.code === 0 ) {
                        console.log('成功')
                    }
                }).catch((error) => {
                    console.log(error)
                })
            }
        }
    }
    </script>
    
    <style lang="less" scoped>
    
    </style>

    (六)通过openId做用户的数据绑定或查询等操作

        前后端都获取了openId后,就能通过openId做用户数据的绑定和查询了。

    (七)补充说明

       使用上述方法进行的微信授权,在手机端会有两次空白页跳转,时间虽然很短暂,但有些产品经理会觉得这种体验不好(实在很欠揍)。解决方法是:可以把跳转到微信获取code的这段链接拼接好直接复制到  微信公众平台 后台管理系统菜单列表里面。这样点击菜单,在回调页通过截取url中的code,就能直接获取到code了,就避免了多次跳转的情况。

    (八)解决微信授权成功进入项目后,点击手机物理返回键或返回会出现空白页或者报错的情况,空白页是因为授权页就是空白页。可以参考我的另一篇文章:

    解决微信授权成功后点击按返回键出现空白页和报错的问题
    https://blog.csdn.net/qq_35430000/article/details/81505497

    最后:这篇分享来源于我在实际项目中摸索和借鉴其他项目,有不对的地方希望大家多多指出,有不明白的地方可以给我留言.

    卓越的云计算服务提供商,230万+用户正在享受阿里云"稳定,安全,低成本"的产品服务,金牌服务:免费体验,专业快速备案,7x24小时售后,服务器只选阿里云

    展开全文
  • 微信小程序获取用户openid

    万次阅读 多人点赞 2018-03-26 17:12:53
    1、wx.login(OBJECT) 调用接口获取登录凭证(code)进而换取用户登录态信息,包括用户的唯一标识(openid) 及本次登录的 会话密钥(session_key)。用户数据的加解密通讯需要依赖会话密钥完成。2、code 换取 ...

    1、wx.login(OBJECT)

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

    2、code 换取 session_key

    ​  这是一个 HTTPS 接口,开发者服务器使用登录凭证 code 获取 session_key 和 openid。其中 session_key 是对用户数据进行加密签名的密钥。为了自身应用安全,session_key 不应该在网络上传输。
    接口地址:
    https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

    详细的介绍请看小程序APIhttps://mp.weixin.qq.com/debug/wxadoc/dev/api/api-login.html#wxloginobject

    3、获取用户openid实例

    //app.js
    App({
        globalData:{
            appid:'1wqas2342dasaqwe2323424ac23qwe',//appid需自己提供,此处的appid我随机编写
            secret:'e0dassdadef2424234209bwqqweqw123ccqwa',//secret需自己提供,此处的secret我随机编写
    
        },
        onLaunch: function () {
         var that = this
         var user=wx.getStorageSync('user') || {};  
         var userInfo=wx.getStorageSync('userInfo') || {}; 
         if((!user.openid || (user.expires_in || Date.now()) < (Date.now() + 600))&&(!userInfo.nickName)){ 
            wx.login({  
            success: function(res){ 
                if(res.code) {
                    wx.getUserInfo({
                        success: function (res) {
                            var objz={};
                            objz.avatarUrl=res.userInfo.avatarUrl;
                            objz.nickName=res.userInfo.nickName;
                            //console.log(objz);
                            wx.setStorageSync('userInfo', objz);//存储userInfo
                        }
                    });
                    var d=that.globalData;//这里存储了appid、secret、token串  
                    var l='https://api.weixin.qq.com/sns/jscode2session?appid='+d.appid+'&secret='+d.secret+'&js_code='+res.code+'&grant_type=authorization_code';  
                    wx.request({  
                        url: l,  
                        data: {},  
                        method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT  
                        // header: {}, // 设置请求的 header  
                        success: function(res){ 
                            var obj={};
                            obj.openid=res.data.openid;  
                            obj.expires_in=Date.now()+res.data.expires_in;  
                            //console.log(obj);
                            wx.setStorageSync('user', obj);//存储openid  
                        }  
                    });
                }else {
                    console.log('获取用户登录态失败!' + res.errMsg)
                }          
            }  
          }); 
        } 
       },
    })


    展开全文
  • 绑定微信以及获取openId

    千次阅读 2019-02-15 10:59:40
    由于公司最近在做一个微信公众号的项目,需要获取用户openId,我再一次踏入了微信的坑!  先在这里告诫后来的同志,如果一样要开始做有关微信的东西,最好是有前辈,或者直接看完文档,不懂或者纳闷的地方直接找...
  • 微信小程序获取openid

    万次阅读 2017-10-20 09:25:10
    微信小程序openid,session_key等信息的获取,以及遇到的问题
  • 如何获取微信用户openid

    千次阅读 2019-07-25 11:39:42
    方法一:通过全局Access Token获取用户基本信息 用户关注以及回复消息的时候,均可以获得用户的OpenID 然后使用access_token接口,请求获得全局Access Token ...appid=APPID&secret=APPSECRE...
  • 最近,对微信公众号有点兴趣,就自己研究了研究里面...我想,做微信公众号开发的,对于想获取关注了公众号的用户信息,或者说是当前与后台服务器进行交互的当前用户信息,这个功能是很重要的吧。因为,通过这个,可...
  • 微信公众号开发系列-获取微信OpenID

    万次阅读 多人点赞 2015-05-21 22:51:30
    在微信开发时候在做消息接口交互的时候需要使用带微信加密ID(OpenId),下面讲讲述2中类型方式获取微信OpenID,接收事件推送方式和网页授权获取用户基本信息方式获取。
  • 获取微信openid

    千次阅读 2018-02-10 17:09:32
    其实原理上讲,可以批量获取openid后,逐条匹配详细信息,并保存到本地,然后找出你需要的用户openid信息。然而,今天网上偶然发现神人们居然有各种招式https://www.zhihu.com/question/28101897...
  • 获取微信OpenID

    2016-11-19 11:31:37
    参数 是否必须 说明 appid 是 公众号的唯一标识 redirect_uri 是 授权后重定向的回调链接地址,请使用...应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_u
  • vue 授权获取微信openId

    万次阅读 热门讨论 2020-06-27 11:19:36
    1、获取code 根据code 获取openId getUrlKey:function(name){//获取url 参数 return decodeURIComponent((new RegExp('[?|&amp;]'+name+'='+'([^&amp;;]+?)(&amp;|#|;|$)').exec(location.href)||[,&...
  • 获取微信openid必要的工具类,获取微信openid必要的工具类。
  • html5+jquery获取微信openid

    万次阅读 热门讨论 2015-08-05 08:07:41
    最近在修改一个移动商城,由于wap端是HTML5的,还大量使用了art模板技术,一开始修改很不适应,而且实现HTML5取openid一直没能实现很好的实现,经过对获取原理的理解和学习,终于还是实现了HTML获取微信openid,而且...
  • .NET获取微信openid

    千次阅读 2016-06-22 13:40:48
    .net获取微信OpenID
  • 获取微信openid的步骤

    2018-10-18 14:35:12
    微信OpenID获取 用户要求在微信端登录一次后,以后不需要再登录. 我的系统是单独的一个网站. 使用MVC的记住密码功能, 如果用户重启,就还是要输入密码,所以需要有一个唯一不变的用来标示用户的ID。 OpenID就是这样...
  • c#获取微信Openid

    2020-06-27 16:30:41
    #region 获取小程序openid 和session_key [HttpGet] public void GetCode(string json_code) { string serviceAddress = “https://api.weixin.qq.com/sns/jscode2session?appid=” + “APPID” + “&secret=” ...
  • SpringBoot获取微信openid(java)

    千次阅读 2019-02-26 16:19:28
    工具类 public class ComonUtils { public static StringBuffer appendUrl(StringInput code) { StringBuffer info = new StringBuffer("...); info.append("ap...
  • C#获取微信openid

    2019-07-31 14:28:30
    1.更改微信网页授权信息 2.获取appid和AppSecret 3.做接口 https://open.weixin.qq.com/connect/oauth2/authorize?appid=11111111111&redirect_uri=************************************&response_...
  • PHP获取微信openid 简单教程

    千次阅读 2018-08-14 09:22:43
    获取code https://open.weixin.qq.com/connect/oauth2/authorize?appid=这里是你的公众号的APPID&amp;redirect_uri=http://www.xx.com/getcode&amp;response_type=code&amp;scope=snsapi_userinfo&...
1 2 3 4 5 ... 20
收藏数 22,277
精华内容 8,910
关键字:

获取微信openid