1. 程式人生 > 其它 >微信公眾號完美解決關注後三次獲取media_id重複3次的問題

微信公眾號完美解決關注後三次獲取media_id重複3次的問題

技術標籤:微信公眾號開發java小程式pythonwebsockethttp

很多人會被普通訊息回覆中:
當普通微信使用者向公眾賬號發訊息時,微信伺服器將POST訊息的XML資料包到開發者填寫的URL上。

請注意:

關於重試的訊息排重,推薦使用msgid排重。
微信伺服器在五秒內收不到響應會斷掉連線,並且重新發起請求,總共重試三次。假如伺服器無法保證在五秒內處理並回復,可以直接回復空串,微信伺服器不會對此作任何處理,並且不會發起重試。詳情請見“傳送訊息-被動回覆訊息”。
如果開發者需要對使用者訊息在5秒內立即做出迴應,即使用“傳送訊息-被動回覆訊息”介面向用戶被動回覆訊息時,可以在
公眾平臺官網的開發者中心處設定訊息加密。開啟加密後,使用者發來的訊息和開發者回覆的訊息都會被加密(但開發者通過客服介面等API呼叫形式向用戶傳送訊息,則不受影響)。關於訊息加解密的詳細說明,請見“傳送訊息-被動回覆訊息加解密說明”。 各訊息型別的推送XML資料包結構如下

也有人會被 controller攔截器配置問題
所誤導
耽誤了很長時間

解決方法:
不墨跡直接上程式碼
在controller中關注事件加上這個判斷 如果獲取多個FromUserName就不執行,讓其保持一個

   //關注後自動回覆的事件
            if (ime.getEvent().equals("subscribe")) {
                //判斷三次走controller
                if (idList.contains(ime.getFromUserName())) {
                    idList.
remove(ime.getFromUserName()); return null; } else { idList.add(ime.getFromUserName()); }

判斷後最後再移除FromUserName()

  idList.remove(ime.getFromUserName());