public class WeiXinUtils {
private static Logger logger = Logger.getLogger(WeiXinUtils.class);
public static final String appid = "wxb38d79ca8d70ad03";
public static final String baseUrl = "http://open.yilucaifu.com";
public static String getTimeStamp(){
String timestamp = System.currentTimeMillis() + "";
timestamp = timestamp.substring(0, timestamp.length()-3);
return timestamp;
}
public static String getJsApi_Ticket() throws Exception {
String JsApi_Ticket = null;
DefaultHttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(
"https://api.weixin.qq.com/cgi-bin/token");
StringEntity reqEntity = new StringEntity(
"grant_type=client_credential&appid=wxb38d79ca8d70ad03&secret=33fea7473064ca0fcfb7e4b0876dba0c");
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
System.out.println("----------------------------------------");
System.out.println(response.getStatusLine());
if (entity != null) {
System.out.println("Response content length: "
+ entity.getContentLength());
}
// 显示结果
BufferedReader reader = new BufferedReader(new InputStreamReader(
entity.getContent(), "UTF-8"));
String line = null;
while ((line = reader.readLine()) != null) {
System.out.println(line);
JSONObject jb = JSONObject.fromObject(line);
if (jb.containsKey("access_token")) {
String access_token = jb.getString("access_token");
HttpPost httppost2 = new HttpPost(
"https://api.weixin.qq.com/cgi-bin/ticket/getticket");
StringEntity reqEntity2 = new StringEntity("access_token="
+ access_token + "&type=jsapi");
httppost2.setEntity(reqEntity2);
// 执行
HttpResponse response2 = httpclient.execute(httppost2);
HttpEntity entity2 = response2.getEntity();
System.out.println("----------------------------------------");
System.out.println(response2.getStatusLine());
if (entity2 != null) {
System.out.println("Response content length: "
+ entity2.getContentLength());
}
// 显示结果
BufferedReader reader2 = new BufferedReader(
new InputStreamReader(entity2.getContent(), "UTF-8"));
String line2 = null;
while ((line2 = reader2.readLine()) != null) {
JSONObject jb2 = JSONObject.fromObject(line2);
System.out.println(line2);
if (jb2.containsKey("ticket")) {
JsApi_Ticket = jb2.getString("ticket");
}
}
if (entity2 != null) {
entity2.consumeContent();
}
}
}
if (entity != null) {
entity.consumeContent();
}
return JsApi_Ticket;
}
public static String getShaSignature(HttpServletRequest request,
String url, String noncestr, String timestamp) throws Exception {
String jsApi_Ticket = (String) request.getSession().getServletContext()
.getAttribute("jsApi_Ticket");
Date jsApi_Ticket_Time = (Date) request.getSession()
.getServletContext().getAttribute("jsApi_Ticket_Time");
if (jsApi_Ticket_Time == null
|| (DateUtils.diffTime(new Date(), jsApi_Ticket_Time) > (3600 * 1000))) {
jsApi_Ticket = getJsApi_Ticket();
request.getSession().getServletContext()
.setAttribute("jsApi_Ticket", jsApi_Ticket);
request.getSession().getServletContext()
.setAttribute("jsApi_Ticket_Time", new Date());
// logger.error("时间=" + DateUtils.getNowDate() + "jsApi_Ticket=" +
// jsApi_Ticket);
}
String data = "jsapi_ticket=" + jsApi_Ticket + "&noncestr=" + noncestr
+ "×tamp=" + timestamp + "&url=" + url;
System.out.println("date=" + data);
String digest = new SHA1().getDigestOfString(data.getBytes());
return digest.toLowerCase();
}
public static String getRandomString(int length) {
String base = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIGKLMNOPQRSTUVWXYZ";
Random random = new Random();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < length; i++) {
int number = random.nextInt(base.length());
sb.append(base.charAt(number));
}
return sb.toString();
}
public static String getRequestURL(HttpServletRequest request) {
if (request == null) {
return "";
}
String url = baseUrl + request.getServletPath();
java.util.Enumeration names = request.getParameterNames();
int i = 0;
if (!"".equals(request.getQueryString())
&& request.getQueryString() != null) {
url = url + "?" + request.getQueryString();
}
// if (names != null) {
// while (names.hasMoreElements()) {
// String name = (String) names.nextElement();
// if (i == 0) {
// url = url + "?";
// } else {
// url = url + "&";
// }
// i++;
//
// String value = request.getParameter(name);
// if (value == null) {
// value = "";
// }
//
// url = url + name + "=" + value;
// try {
// // java.net.URLEncoder.encode(url, "ISO-8859");
// } catch (Exception e) {
// e.printStackTrace();
// }
// }
// }
if(url.contains("#")){
url = url.substring(0, url.indexOf("#"));
}
logger.info("url=" + url);
return url;
}
}