1. 程式人生 > >前後端分離(VUE+SPRINGBOOT)十五 微信移動端 企業微信的開發token和jsapi_ticket的存取

前後端分離(VUE+SPRINGBOOT)十五 微信移動端 企業微信的開發token和jsapi_ticket的存取

呼叫介面很簡單,寫2個方法,先寫一個POST,一個GET,

配置檔案裡配置好

每次需要用token或者是jsapi_ticket的時候,先去資料庫查詢有效的token

如果有則返回需要的token或者jsapi_ticket或者txlaccesstoken,

找不到,則清除表,重新呼叫微信介面,儲存至資料庫並返回,

相關程式碼如下。

/***      * 獲取acess_token      * @return      */

    public static String getAccessToken(String appid,String appSecret) {

        String url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid="+appid+"&corpsecret="+appSecret;                  String backData = WebCharUtil.sendGet(url, "utf-8", 10000);         String accessToken = JSON.parseObject(backData).getString("access_token") ;

        return accessToken;

    }

    /***      *       * 獲取jsapiTicket      * @return      *       */

    public static String getJSApiTicket(String acessToken) {

        String urlStr = "https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token="+acessToken;

        String backData = WebCharUtil.sendGet(urlStr, "utf-8", 10000);         String ticket = JSON.parseObject(backData).getString("ticket");

        return ticket;

    }

/**      * 獲取微信token,先從本地資料庫判斷是否有未失效的,      * 有 則從本地讀取出來,      * 沒有 則從微信端獲取來,在更新到資料庫並快取      * (最好是放快取,此處還未加快取)      * @return      */     @Override     public String getWebChatCache(JSONObject jsonObject1) {         JSONObject jsonObject = webChatCacheDao.getWebChatCache(jsonObject1);         System.out.println(jsonObject);                  if(jsonObject==null) {   //失效或者不存在,呼叫微信介面獲取並儲存資料庫             String accessToken =WebCharUtil.getAccessToken(this.cortid, this.secret);             String txlAccessToken =WebCharUtil.getAccessToken(this.cortid, this.txlsecret);             String jspApiTicket = WebCharUtil.getJSApiTicket(accessToken);             webChatCacheDao.deleteWebChatCache(null);//清掉之前的資料             JSONObject insertObject = new JSONObject();             //微信的token和JSapiticket預設失效2小時             insertObject.put("expireTime", this.getBeforeByHourTime(2));             insertObject.put("key", WebChatCommon.ACCESSTOKEN);             insertObject.put("value", accessToken);             webChatCacheDao.insertWebChatCache(insertObject);             insertObject.put("key", WebChatCommon.JSAPITICKET);             insertObject.put("value", jspApiTicket);             webChatCacheDao.insertWebChatCache(insertObject);             insertObject.put("key", WebChatCommon.TXLJSAPITICKET);             insertObject.put("value", txlAccessToken);             webChatCacheDao.insertWebChatCache(insertObject);             if(WebChatCommon.ACCESSTOKEN.equals(jsonObject1.getString("key"))){                 return accessToken;             }else if(WebChatCommon.JSAPITICKET.equals(jsonObject1.getString("key"))){                 return jspApiTicket;             }else {                 return txlAccessToken;             }                      }else {                    //有則直接從資料庫返回             return jsonObject.getString("value");         }     }