基于SSM框架開發(fā)微信公眾號

最近想了解一下微信公眾號的開發(fā),于是就寫了這么一個博客。
我使用了SpringMVC、Spring、MyBatis來構建項目的框架,通過Maven對jar包進行管理。

開發(fā)前你需要做的

  • 申請測試賬號

??因為微信公眾號的注冊有一定的門檻,某些高級接口的權限需要微信認證后才可以獲取,所以我申請的是測試號。申請成功后,在登錄界面會有測試號的信息:
  • 服務器接口配置

??公眾號開發(fā)前需要對消息進行驗證,是否來自于服務器,具體驗證過程可以瀏覽微信公眾號開發(fā)文檔,官方也給出了代碼示例。接下來就是接口信息配置,我使用的是一款內網穿透工具 ngrok,好處就是將本機地址映射到外網中,方便于測試使用:



??token值應該與你代碼中設置的token保持一致。填寫好后提交,如果出現(xiàn)配置失敗,多提交兩三次,即可,如果還是失敗,那就要檢查你的代碼了。到這里微信開發(fā)的基本配置算是弄好了。

設置access_token值

??access_token是公眾號的全局唯一接口調用憑據(jù),公眾號調用各接口時都需使用access_token。access_token的有效期目前為2個小時,需定時刷新,重復獲取將導致上次獲取的access_token失效。這里我使用了SpringMVC里的一個定時器,每兩小時獲取一次access_token的值存入數(shù)據(jù)庫:

    /**
     * 每兩小時獲取一次access_token值,并將access_token值存入數(shù)據(jù)庫中
     */
    @Scheduled(cron = "0 0 */2 * * ?")
    public void getAccessToken() throws IOException {
        System.out.println("獲取access_token值:" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
        AccessToken accessToken = CommonUtil.getAccessToken();
        System.out.println(accessToken.getAccess_token());
        System.out.println(accessToken.getExpires_in());

        // 將access_token存入數(shù)據(jù)庫
        weChatService.insertAccessToken(accessToken);

    }

??以及手動獲取access_token的值:

    /**
     * 手動獲取access_token值: 如果當前時間與數(shù)據(jù)庫里的最新access_token值的時間相差大于7200秒,則access_token過期,需要重新獲取access_token值,并入庫
     * @return
     * @throws IOException
     */
    public String queryLatestAccessToken() throws IOException {
        AccessToken accessToken = weChatService.queryLatestAccessToken();

        long curMillis = DateUtil.getCurrentMillis();
        long myCustomMillis = DateUtil.getCustomDateMillis(accessToken.getCreate_time());
        if ((curMillis - myCustomMillis) / 1000 >= 7200) {
            System.out.println("access_token值已過期,重新獲取并入庫......");
            accessToken = CommonUtil.getAccessToken();
            weChatService.insertAccessToken(accessToken);
        }

        return accessToken.getAccess_token();
    }

功能

??可以對自定義菜單進行創(chuàng)建、刪除、事件推送,創(chuàng)建、刪除、查詢個性化菜單;可以接收普通消息,接收事件推送、被動回復用戶消息。

優(yōu)點

??使用SSM框架,對代碼有很強的復用性和擴展性,并且很穩(wěn)定。后續(xù)增加新的功能,可以直接在現(xiàn)有代碼上進行二次開發(fā)。

代碼地址

??https://github.com/JenkinWang/WeChatOfficialAccount

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 一、公眾號介紹 微信公眾號分類 訂閱號:主要偏于為用戶傳達資訊(類似報紙雜志),認證前后都是每天只可以群發(fā)一條消息...
    小花的胖次閱讀 6,827評論 3 37
  • title: 微信公眾號開發(fā):獲取openId和用戶信息 tags: 微信公眾號 categories: 筆記 ...
    行徑行閱讀 142,006評論 5 63
  • 大家好,我是IT修真院深圳分院第6期學員,一枚正直善良的JAVA程序員。 今天給大家分享一下,修真院官網復盤項目中...
    blue_gogogo閱讀 633評論 1 3
  • “我生長在一個靠山傍河的小村莊,是地地道道的‘山河之子’”,秋雨先生在《文化苦旅》中如是說。而我,亦是地地道道的山...
    胖呆狐閱讀 784評論 0 1
  • 王恒老師好,聽過你的講座(2016.9.24)。你是內蒙人,我是山西人,上次在山西作報告時,沒有領到你的書。作為生...
    王恒_1605閱讀 205評論 0 0

友情鏈接更多精彩內容