123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- package com.yihu.utils;
- import java.io.InputStream;
- import java.io.UnsupportedEncodingException;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.security.MessageDigest;
- import java.security.NoSuchAlgorithmException;
- import java.util.Formatter;
- import java.util.UUID;
- import net.sf.json.JSONObject;
- public class WxSDK
- {
- private final static String APPID="";//暂时没有参数无法自己实现access_token和jsapi_ticket
-
- private final static String APPSECRET="";//暂时没有参数无法自己实现access_token和jsapi_ticket
-
- /* public String access_token(){
- String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid="+APPID+"&secret="+APPSECRET;
- String access_token=null;
-
- String expires_in=null;
- try{
- URL urlGet = new URL(url);
- HttpURLConnection http = (HttpURLConnection) urlGet.openConnection();
- http.setRequestMethod("GET"); // 必须是get方式请求
- http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
- http.setDoOutput(true);
- http.setDoInput(true);
- System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
- System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
- http.connect();
- InputStream is = http.getInputStream();
- int size = is.available();
- byte[] jsonBytes = new byte[size];
- is.read(jsonBytes);
- String message = new String(jsonBytes, "UTF-8");
- JSONObject demoJson = JSONObject.fromObject(message);
- access_token = demoJson.getString("access_token");
- expires_in = demoJson.getString("expires_in");
- is.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return access_token;
- }
-
- public String jsapi_ticket(String access_token){
- String str = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="+access_token+"&type=jsapi";
- String jsapi_ticket = null;
- String expiresin =null;
- try {
- URL url = new URL(str);
- HttpURLConnection http = (HttpURLConnection) url.openConnection();
- http.setRequestMethod("GET"); // 必须是get方式请求
- http.setRequestProperty("Content-Type","application/x-www-form-urlencoded");
- http.setDoOutput(true);
- http.setDoInput(true);
- System.setProperty("sun.net.client.defaultConnectTimeout", "30000");// 连接超时30秒
- System.setProperty("sun.net.client.defaultReadTimeout", "30000"); // 读取超时30秒
- http.connect(); InputStream is = http.getInputStream();
- int size = is.available();
- byte[] jsonBytes = new byte[size];
- is.read(jsonBytes);
- String message = new String(jsonBytes, "UTF-8");
- JSONObject demoJson = JSONObject.fromObject(message);
- jsapi_ticket = demoJson.getString("ticket");
- expiresin = demoJson.getString("expires_in");
- is.close();
- } catch (Exception e) {
- e.printStackTrace();
- }
- return jsapi_ticket;
- } */
- private static String byteToHex(final byte[] hash) {
- Formatter formatter = new Formatter();
- for (byte b : hash)
- {
- formatter.format("%02x", b);
- }
- String result = formatter.toString();
- formatter.close();
- return result;
- }
- private static String create_nonce_str() {
- return UUID.randomUUID().toString().trim().replaceAll("-", "");
- }
- private static String create_timestamp() {
- return Long.toString(System.currentTimeMillis() / 1000);
- }
- public static JSONObject getConfig(String jsapi_ticket, String url) {
- JSONObject ret = new JSONObject();
- String nonce_str = create_nonce_str();
- String timestamp = create_timestamp();
- String string1;
- String signature = "";
- string1 = "jsapi_ticket=" + jsapi_ticket +
- "&noncestr=" + nonce_str +
- "×tamp=" + timestamp +
- "&url=" + url;
- try
- {
- MessageDigest crypt = MessageDigest.getInstance("SHA-1");
- crypt.reset();
- crypt.update(string1.getBytes("UTF-8"));
- signature = byteToHex(crypt.digest());
- }
- catch (NoSuchAlgorithmException e)
- {
- e.printStackTrace();
- }
- catch (UnsupportedEncodingException e)
- {
- e.printStackTrace();
- }
- ret.put("url", url);
- ret.put("jsapi_ticket", jsapi_ticket);
- ret.put("nonceStr", nonce_str);
- ret.put("timestamp", timestamp);
- ret.put("signature", signature);
- return ret;
- }
-
- }
|