微信公衆號java開發思路

方法一:不開啓開發模式,直接在自定義菜單中跳轉到網頁,適用於流量較小的公衆號。
 
方法二:開啓開發者模式,關閉自帶的自定義菜單和消息回覆,接入本身開發的應用
          一、接入校驗:建立servlet,在doGet()中進行校驗,校驗成功表示微信和當前應用接入成功
          二、響應用戶發送的消息:在servlet的doPost()中進行響應xml消息,xml消息有如下屬性:
                    FromUserName,ToUserName,MsgType,Content
               其中MsgType又分event,text,voice,video,link,location,subscribe等等類型,系統須要先根據MsgType類型來進行響應
          三、經過appId和secretId獲取accessToken,用於調用微信的接口。token有效時間通常爲2小時。
                    1)能夠開啓線程用thread.sleep(2000)來不斷獲取token放到靜態字段裏,要用的時候到靜態字段裏取便可
                    2)將token、過時時間保存到redis等數據庫中,用的時候取出,而後判斷是否過時,過時則從新獲取。
          三、建立自定義菜單
               組裝自定義菜單(json),經過post請求將自定義菜單連帶accessToken發送到微信接口。菜單建立
 
 
  交互圖:
 

 

  如下是acessToken設計僞代碼:
class WxServlet extends HttpServlet{
    doGet(){//接入校驗}
    doPost(){//響應消息}
    init(){
      WxUtil.createMenu();
    }
}

class AcessToken{
  pivate String token;
  private String expires;
  //getter setter
}


class WxUtil{
  void createMenu(){
    //獲取acessToken
    getAcessToken();
    //組裝菜單(json)發送post請求到微信服務器,建立成功
  }

  String getAcessToken(){
    //校驗token是否過時,過時從新獲取,不然用數據庫中的數據
    AcessToken t= getAcessTokenFromDb();
    if(checkExpires(t.exprise))
      return t.token;
    else
      return getAcessTokenFromWx().token;
  }

  AcessToken getAcessTokenFromDb(){}
  AcessToken getAcessTokenFromWx(){
      //經過微信接口請求acessToken,保存到數據庫
    saveToken2Db(t);
    //返回token
  }

  void saveToken2Db(t){
    //將token保存到數據庫或內存中
  }

}
相關文章
相關標籤/搜索