后台为java,前台为微信小程序,后台通过code解析openId,
下面代码是通过配置文件读取wxspAppid与wxspSercet
如何使用配置文件读取值查看java读取配置文件
public static String decode(String code){
Configure configure=new Configure("wxconfig.properties");//解析配置文件
String wxspAppid=configure.getValue("wx.wxspAppid");//获取key 值
String wxspSecret=configure.getValue("wx.wxspSecret");
System.out.println(new Date() +"----code是----"+code);
String status;
if(null==code || code.length()==0){
status="code不能为空!";
return status;
}
//授权(必填)
String grant_type="authorization_code";//默认参数 authorization_code
//向微信服务器,使用登录凭证code获取session_key 和 oppenid
String param="appid="+wxspAppid+"&secret="+wxspSecret+"&js_code="+code+"&grant_type"+grant_type;
String sr=SendGet.SendGET("https://api.weixin.qq.com/sns/jscode2session", param);
System.out.println("解析code是------------------"+sr);
//解析相应内容(转换成json对象)
JSONObject json=(JSONObject) JSONObject.parse(sr);
//获取openid 用户唯一标识
String openId=(String)json.get("openid");//获取openid
return openId;
}
2、上面代码所用的SendGet类
public class SendGet {
public static String SendGET(String url,String param){
String result="";//访问返回结果
BufferedReader read=null;//读取访问结果
try {
//创建url
URL realurl=new URL(url+"?"+param);
//打开连接
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();
// 遍历所有的响应头字段,获取到cookies等
for (String key : map.keySet()) {
/* System.out.println(key + "--->" + map.get(key));*/
}
// 定义 BufferedReader输入流来读取URL的响应
read = new BufferedReader(new InputStreamReader(
connection.getInputStream(),"UTF-8"));
String line;//循环读取
while ((line = read.readLine()) != null) {
result += line;
}
} catch (IOException e) {
e.printStackTrace();
}finally{
if(read!=null){//关闭流
try {
read.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return result;
}
}