JAVAの微信の小さいプログラム--携帯電話の番号は解読します


最近、プロジェクトはバックグラウンド+微信ウィジェットを完成しています.バックグラウンドの方面の问题はそんなに大きくなくて、主に小さいプログラムはユーザーの携帯番号に対して解読を行う必要があって、する时确かにいくつかの问题が现れて、微信の公式サイトも関连するファイルをあげて、しかし解読してJAVAのdemoがないようです.多くのブログや関連資料を検索した結果、解読後の携帯電話番号を手に入れたのもラッキーでした.あまり話さないで、直接コードをつけます.
@ResponseBody
	  	@RequestMapping("/loginapp.do")
	    public DataResponse decodeUser(@RequestParam("encryptedData")String encryptedData, 
	            @RequestParam("iv")String iv,  
	            @RequestParam("code")String code) {  //               
	        DataResponse response = new DataResponse();
	        Map map = new HashMap<>(); 
	        //         
	        if (code == null || code.length() == 0) { 
	            /*map.put("status", 0); 
	            map.put("msg", "code     ");
			     return map;*/
	            response.setResult_code("failed");
	            response.setResult_msg("code     ");
                return response; 
	        } 
	        //         (            ) 
	        String wxspAppid = "    appid"; 
	        //     app secret (            ) 
	        String wxspSecret = ""     secret"; 
	        //  (  ) 
	        String grant_type = "authorization_code"; 

	        // 1、              code    session_key   openid 
	        //     
	        String params = "appid=" + wxspAppid + "&secret=" + wxspSecret + "&js_code=" + code + "&grant_type=" + grant_type; 
	        //     
	        String sr = HttpRequest.sendGet("https://api.weixin.qq.com/sns/jscode2session", params); 
	        //      (   json  ) 
	        Gson gson = new Gson();
	        JsonObject json = gson.fromJson(sr, JsonObject.class);
	        System.out.println(json);
//	      JSONObject json = JSONObject.fromObject(sr);
	        if (json.get("session_key") == null) {
	            /*map.put("status", 0); 
	            map.put("msg", "    ");
	            return map;*/  
	            response.setResult_code("failed");
	            response.setResult_msg("    :" + json.get("errmsg").toString().replaceAll("\"", ""));
	            return response;
	        }
	        //      (session_key) 
	        String session_key = json.get("session_key").toString(); 
	        //       (openid) 

	        String openid = json.get("openid").toString();
	        //////////////// 2、 encryptedData      AES   //////////////// 
	        try { 
	            String result = AesCbcUtil.decrypt(encryptedData, session_key, iv, "UTF-8"); 
	            if (null != result && result.length() > 0) { 
	                JsonObject userInfoJSON = gson.fromJson(result, JsonObject.class);
	                System.out.println("user: " + userInfoJSON);
	                Map userInfo = new HashMap<>(); 
	                userInfo.put("openId", openid.replaceAll("\"", ""));	              
	                userInfo.put("phoneNumber", userInfoJSON.get("phoneNumber").toString().replaceAll("\"", "")); 
	               TUser tUser=new TUser();
	               String telnum=userInfoJSON.get("phoneNumber").toString().replaceAll("\"", "");
	               tUser.setTelnum(telnum);
	               String name="";  
	               for(int i=0;i<6;i++){  
	                   int intVal=(int)(Math.random()*26+65);  
	                   name=name+(char)intVal;  
	               }
	               TUser uu=tUserService.selectbytelnum(telnum);//                  ,      
	               if(uu ==null){
	            	   tUser.setTest(0);
	            	   tUser.setName(name);
		               tUser.setSex(" ");
		               tUser.setAge(18);;
		               tUser.setOpenid(openid);
		               tUser.setSessionkey(session_key);
		               tUser.setCreatetime(new Date());
		               tUserService.insert(tUser); 
	               }	               
	                map.put("userInfo", userInfo);
	                System.out.println("map: " + map);
	                response.setResult_code("success");
	                response.setResult_msg("    ");
	                response.setData(userInfo);
	                return response; 
	            } 
	        } catch (Exception e) { 
	            e.printStackTrace(); 
	        } 
	        response.setResult_code("failed");
	        response.setResult_msg("    ");
	        return response; 
	    } 

これにより、携帯電話番号(phoneNumber)を直接解析することができ、コード親測定が利用可能になります.