如题,如果之前已经申请了微信公众号并且通过审核。那么你还需要移动应用,网站以及其他的应用,那么申请一个微信开放平台账号是不二之选。

    今天我们要讲的是微信开放平台移动应用获取微信用户信息。此获取方式有别于微信公众号获取。

    具体步骤如下:

    1,申请微信开放平台账号,并通过资质审核。

    2,登录账号  ,点击 “管理中心”--》移动应用--》创建移动应用,提交相关资料等待微信审核通过。

    3,此时,移动应用审核通过后,可以添加移动应用相关的开发信息。获取移动应用微信登录代码如下

    1)移动应用获取服务器返回的appid,appsecret,通过此参数调用本地微信应用接口,获取微信应用用户临时授权code。

    2)根据临时授权code,交互微信服务器取得登录用户access_token,openid,unionid,scope。

    3)如果scope不包含有snsapi_userinfo授权说明用户禁止获取微信用户基本信息。如果有,则进入获取用户信息代码

    关键代码:

    //=================================================================================微信公众平台账号调用代码
    	
    	private String getGZURLTokenByCode(String code,String appid,String secret){
    		String url = PropertiesUtil.getValue("wx.accessTokenCode");
    		//https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
    		// url = url.replace("CODE", code);
    		String result = "";
    		try {
    			result = Posturl.getRequest(url);
    			if (log.isInfoEnabled()) {
    				log.info("根据网页授权code,获取openid,网页授权access_token:---------" + result);
    			}
    			return result;
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    		return "";
    	}

    //========
    Object obj = resultmap.get("access_token");
    						if (obj != null) {
    							Object scope = resultmap.get("scope");
    							Object openid = resultmap.get("openid");
    							Object unionid = resultmap.get("unionid");
    							result.put("openid", openid == null ? "" : openid);
    							result.put("scope", scope == null ? "" : scope);
    							result.put("unionid", unionid == null ? "" : unionid);
    							if(scope!=null && scope.toString().indexOf("snsapi_userinfo")<0){
    								result.put("status", "-1");
    								result.put("msg", "用户禁止授权,无snsapi_userinfo权限");
    								return result;
    							}
    							// D:获取微信用户信息
    							Map<String,Object> resulttmp = getGZWeiXinUserinfo(obj.toString(), String.valueOf(openid));
    							if(resulttmp.get("status") == null){
    								result.put("data",JSON.toJSON(resulttmp));
    							}else{
    								result.putAll(resulttmp);
    							}
    						}else{
    							result.putAll(resultmap);
    						}
    						return result;


    注意:此处有坑,,,很大的坑

    微信开放平台移动应用获取微信用户信息请求接口地址为  https://api.weixin.qq.com/sns/userinfo?access_token=ACCESS_TOKEN&openid=OPENID

    而微信公众号获取微信用户信息请求接口为 https://api.weixin.qq.com/cgi-bin/user/info?access_token=ACCESS_TOKEN&openid=OPENID&lang=zh_CN

    微信公众号需要通过code获取access_token以后,再根据微信基础接口调用的 access_token 去取微信用户信息。
    d

    联系QQ:343886028 --加QQ群 145315854