发表于: 2018-02-04 22:46:24
1 710
今天完成的事情:
1. 微信获取token
2. 从微信下载文件
3. 微信的签名算法
明天计划的事情
1 . 准备小课堂
遇到的问题:
无
收获:
1. 微信获取token
public String getBasicsAccessToken() throws IOException,CacheException {
String accessToken = (String) Memcache.get("memcache","basics_access_token");
if(DataUtils.isNotNullOrEmpty(accessToken)){
log.info("从缓存获取basics_access_token");
return accessToken;
}
String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET".replace("APPID",URLEncoder.encode(appId,"UTF-8")).replace("APPSECRET",URLEncoder.encode(secret,"UTF-8"));
JSONObject jsonObject = requestUrl(url);
accessToken = jsonObject.getString("access_token");
if(DataUtils.isNullOrEmpty(accessToken)){
throw new NullPointerException("access_token 没有获取到");
}
log.info("从微信获取basics_access_token");
Memcache.put("memcache","basics_access_token",accessToken,7000L);
return accessToken;
}
2. 从微信下载文件
public static InputStream getWeiXinFile(String accessToken,String mediaId){
String url = "https://api.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID".replace("ACCESS_TOKEN",accessToken).replace("MEDIA_ID",mediaId);
InputStream in = null;
try {
URL httpUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) httpUrl.openConnection();
//以Post方式提交表单,默认get方式
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.setDoOutput(true);
conn.setUseCaches(false);
//连接指定的资源
conn.connect();
//获取网络输入流
in=conn.getInputStream();
}catch (Exception e){
return null;
}
return in;
}
3. 微信的签名算法
//获取jsapi_ticket
String jsapiTicket = WeChatUtil.getJsapiTicket(weChatUtil.getBasicsAccessToken());
//进行sha1加密
String timestamp = String.valueOf(System.currentTimeMillis() /1000);
String nonceStr = UUID.randomUUID().toString().replace("-", "").substring(0, 16);
public static String getSignature(String jsapiTicket,String noncestr,String timestamp,String url){
String signature = "jsapi_ticket=" + jsapiTicket + "&noncestr=" + noncestr + "×tamp=" + timestamp + "&url=" +url;
return DigestUtils.shaHex(signature);
}
明天计划:
准备小课堂
预计完成时间:2018.02.05
DOME时间:2018-2-9
评论