- 修復MediaAPI中依賴spring框架工具類BUG;
- 重構自定義Handle介面,使用更加方便;
- 修復建立選單空指標BUG,感謝bs2004提供反饋;
- 註釋完善,便於理解;
簡單封裝了所有與微信伺服器互動的訊息:文字訊息、圖片訊息、圖文訊息等等提供了基於springmvc以及基於servlet框架的控制器,整合了微信伺服器繫結、監聽所有型別訊息的方法使用時繼承,重寫即可,十分方便v1.2.0開始支援高階介面的API,https請求基於org.apache.httpcomponents 4.3.6,json解析基於fastjson 1.1.46框架中提供MenuAPI、MessageAPI、QrcodeAPI、UserAPI、MediaAPI用於實現所有高階介面功能,使用極其簡單
內部實現token過期自動重新整理,不用再關注token細節
基於springmvc專案的整合方法
@RestController @RequestMapping("/weixin") public class WeixinController extends WeixinControllerSupport { private static final Logger log = LoggerFactory.getLogger(WeixinController.class); private static final String TOKEN = "myToken"; //設定TOKEN,用於繫結微信伺服器 @Override protected String getToken() { return TOKEN; } //重寫父類方法,處理對應的微信訊息 @Override protected BaseMsg handleTextMsg(TextReqMsg msg) { String content = msg.getContent(); log.debug("使用者傳送到伺服器的內容:{}", content); return new TextMsg("伺服器回覆使用者訊息!"); } /*1.1版本新增,重寫父類方法,加入自定義微信訊息處理器 *不是必須的,上面的方法是統一處理所有的文字訊息,如果業務覺複雜,上面的會顯得比較亂 *這個機制就是為了應對這種情況,每個MessageHandle就是一個業務,只處理指定的那部分訊息 */ @Override protected List<MessageHandle> initMessageHandles() { List<MessageHandle> handles = new ArrayList<MessageHandle>(); handles.add(new MyMessageHandle()); return handles; } //1.1版本新增,重寫父類方法,加入自定義微信事件處理器,同上 @Override protected List<EventHandle> initEventHandles() { List<EventHandle> handles = new ArrayList<EventHandle>(); handles.add(new MyEventHandle()); return handles; } }
基於servlet專案的整合方法
public class WeixinServlet extends WeixinServletSupport { private static final Logger log = LoggerFactory.getLogger(WeixinController.class); private static final String TOKEN = "myToken"; //設定TOKEN,用於繫結微信伺服器 @Override protected String getToken() { return TOKEN; } //重寫父類方法,處理對應的微信訊息 @Override protected BaseMsg handleTextMsg(TextReqMsg msg) { String content = msg.getContent(); log.debug("使用者傳送到伺服器的內容:{}", content); return new TextMsg("伺服器回覆使用者訊息!"); } //1.1版本新增,重寫父類方法,加入自定義微信訊息處理器 @Override protected List<MessageHandle> initMessageHandles() { List<MessageHandle> handles = new ArrayList<MessageHandle>(); handles.add(new MyMessageHandle()); return handles; } //1.1版本新增,重寫父類方法,加入自定義微信事件處理器 @Override protected List<EventHandle> initEventHandles() { List<EventHandle> handles = new ArrayList<EventHandle>(); handles.add(new MyEventHandle()); return handles; } }web.xml配置
<servlet> <servlet-name>weixin</servlet-name> <servlet-class>xxx.xxx.WeixinServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>weixin</servlet-name> <url-pattern>/weixin</url-pattern> </servlet-mapping>
來自:開源中國
評論(1)