一、在event包中添加InWifiConnectedEvent類:java
package com.jfinal.weixin.sdk.msg.in.event; import com.jfinal.weixin.sdk.msg.in.InMsg; /** 經過微信連Wi-Fi連網成功後會觸發事件推送, 該事件將發送至開發者填寫的URL(登陸公衆平臺進入開發者中心設置)。 開發者可經過事件推送獲取連網相關信息、數據統計等操做。 <xml> <ToUserName><![CDATA[toUser]]></ToUserName> <FromUserName><![CDATA[FromUser]]></FromUserName> <CreateTime>123456789</CreateTime> <MsgType><![CDATA[event]]></MsgType> <Event><![CDATA[WifiConnected]]></Event> <ConnectTime>0</ConnectTime> <ExpireTime>0</ExpireTime> <VendorId>![CDATA[3001224419]]</VendorId> <PlaceId>![CDATA[PlaceId]]</PlaceId> <DeviceNo>![CDATA[DeviceNo]]</DeviceNo> </xml> */ public class InWifiConnectedEvent extends InMsg { private String event; private Integer connectTime;//用戶聯網時間 private String expireTime;//系統保留字 private String vendorId;//系統保留字 private Integer placeId;//設備所屬的門店id private String deviceNo;//設備的mac地址 public InWifiConnectedEvent(String toUserName, String fromUserName, Integer createTime, String msgType) { super(toUserName, fromUserName, createTime, msgType); } public String getEvent() { return event; } public void setEvent(String event) { this.event = event; } public Integer getConnectTime() { return connectTime; } public void setConnectTime(Integer connectTime) { this.connectTime = connectTime; } public String getExpireTime() { return expireTime; } public void setExpireTime(String expireTime) { this.expireTime = expireTime; } public String getVendorId() { return vendorId; } public void setVendorId(String vendorId) { this.vendorId = vendorId; } public Integer getPlaceId() { return placeId; } public void setPlaceId(Integer placeId) { this.placeId = placeId; } public String getDeviceNo() { return deviceNo; } public void setDeviceNo(String deviceNo) { this.deviceNo = deviceNo; } }
二、擴展InMsgParaser類的parseInEvent方法:微信
//微信連WiFi成功通知事件 if ("WifiConnected".equals(event)){ InWifiConnectedEvent e=new InWifiConnectedEvent(toUserName,fromUserName,createTime,msgType); e.setEvent(event); e.setConnectTime(Integer.parseInt(root.elementText("ConnectTime"))); e.setExpireTime(root.elementText("ExpireTime")); e.setVendorId(root.elementText("VendorId")); e.setPlaceId(Integer.parseInt(root.elementText("PlaceId"))); e.setDeviceNo(root.elementText("PlaceId")); return e; }
三、繼續擴展MsgController類,添加processInWifiConnectedEvent抽象方法:ide
protected abstract void processInWifiConnectedEvent(InWifiConnectedEvent inWifiConnectedEvent);
在其index方法中添加:
this
else if (msg instanceof InWifiConnectedEvent) processInWifiConnectedEvent((InWifiConnectedEvent) msg);
五、在WeixinMsgController控制器中實現上一步的抽象方法:code
@Override protected void processInWifiConnectedEvent(InWifiConnectedEvent inWifiConnectedEvent) { System.out.println("WiFi鏈接成功通知事件"); }