爲Jfinal-weixin SDK添加微信連WiFi成功通知事件

一、在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鏈接成功通知事件");
}
相關文章
相關標籤/搜索