WeChatウィジェットの登録--java
5862 ワード
まず、アプレットのAppid、app secret、wxspSecret、ライセンス:authorization_を取得します.code
バックグラウンドjavaコード:
バックグラウンドjavaコード:
// :code,rawData,signature,encryptedData,iv
// ( )
String wxspAppid = "";
// app secret ( )
String wxspSecret = "";
// ( )
String grant_type = "authorization_code";
Map map = new HashMap( );
System.out.println(" "+rawData);
JSONObject rawDataJson = JSON.parseObject( rawData );
System.out.println(" "+signature);
/* code sessionkey 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);
JSONObject SessionKeyOpenId = JSON.parseObject(sr);
System.out.println("post SessionAndopenId="+SessionKeyOpenId);
Map myinfos = SessionKeyOpenId;
// ,
if(SessionKeyOpenId.containsKey("errcode")){
map.put("userInfo", SessionKeyOpenId);
return map;
}
String openid = SessionKeyOpenId.getString("openid" );
String sessionKey = SessionKeyOpenId.getString( "session_key" );
System.out.println("openid="+openid+",session_key="+sessionKey);
//uuid key
String skey = UUID.randomUUID().toString();
System.out.println(" skey"+skey);
/* -- */
// sessionKey oppenid
map.put( "skey",skey );
/**
* encryptedData AES
*/
try {
String result = AesCbcUtil.decrypt(encryptedData, sessionKey, iv, "UTF-8");
if (null != result && result.length() > 0) {
map.put("status", 1);
map.put("msg", " ");
JSONObject userInfoJSON = JSON.parseObject(result);
/*Map userInfo = new HashMap();
userInfo.put("openId", userInfoJSON.get("openId"));
userInfo.put("nickName", userInfoJSON.get("nickName"));
userInfo.put("gender", userInfoJSON.get("gender"));
userInfo.put("city", userInfoJSON.get("city"));
userInfo.put("province", userInfoJSON.get("province"));
userInfo.put("country", userInfoJSON.get("country"));
userInfo.put("avatarUrl", userInfoJSON.get("avatarUrl"));
// unionId & openId;
userInfo.put("unionId", userInfoJSON.get("unionId"));*/
map.put("userInfo", userInfoJSON);
} else {
map.put("status", 0);
map.put("msg", " ");
}
} catch (Exception e) {
e.printStackTrace();
}
/**
* 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> map = connection.getHeaderFields();
//
for (String key : map.keySet()) {
System.out.println(key + "key:--------------->" + map.get(key));
}
// BufferedReader URL
in = new BufferedReader(new InputStreamReader(
connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} 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;
}