发表于: 2018-02-04 22:46:24

1 709


今天完成的事情:

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 + "&timestamp=" + timestamp + "&url=" +url;
   return DigestUtils.shaHex(signature);
}






明天计划:

准备小课堂

预计完成时间:2018.02.05

DOME时间:2018-2-9



返回列表 返回列表
评论

    分享到