微信公眾號java開發思路


方法一:不開啟開發模式,直接在自定義菜單中跳轉到網頁,適用於流量較小的公眾號。
 
方法二:開啟開發者模式,關閉自帶的自定義菜單和消息回復,接入自己開發的應用
          1、接入校驗:創建servlet,在doGet()中進行校驗,校驗成功表示微信和當前應用接入成功
          2、響應用戶發送的消息:在servlet的doPost()中進行響應xml消息,xml消息有以下屬性:
                    FromUserName,ToUserName,MsgType,Content
               其中MsgType又分event,text,voice,video,link,location,subscribe等等類型,系統需要先根據MsgType類型來進行響應
          3、通過appId和secretId獲取accessToken,用於調用微信的接口。token有效時間一般為2小時。
                    1)可以開啟線程用thread.sleep(2000)來不斷獲取token放到靜態字段里,要用的時候到靜態字段里取即可
                    2)將token、過期時間保存到redis等數據庫中,用的時候取出,然后判斷是否過期,過期則重新獲取。
          3、創建自定義菜單
               組裝自定義菜單(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保存到數據庫或內存中
  }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM