Blame view

src/main/java/com/jfinal/weixin/sdk/msg/out/OutMsg.java 2.97 KB
e80df919   atao   init
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
  /**
   * Copyright (c) 2011-2014, James Zhan 詹波 (jfinal@126.com).
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   */
  
  package com.jfinal.weixin.sdk.msg.out;
  
  import com.jfinal.weixin.sdk.msg.in.InMsg;
  
  import java.io.Serializable;
  
  /**
   * <pre>
      回复文本消息
   &lt;xml&gt;
   &lt;ToUserName&gt;&lt;![CDATA[toUser]]&gt;&lt;/ToUserName&gt;
   &lt;FromUserName&gt;&lt;![CDATA[fromUser]]&gt;&lt;/FromUserName&gt;
   &lt;CreateTime&gt;12345678&lt;/CreateTime&gt;
   &lt;MsgType&gt;&lt;![CDATA[text]]&gt;&lt;/MsgType&gt;
   &lt;Content&gt;&lt;![CDATA[你好]]&gt;&lt;/Content&gt;
   &lt;/xml&gt;
   </pre>
   */
  @SuppressWarnings("serial")
  public abstract class OutMsg implements Serializable {
      // 接收方帐号(收到的OpenID)
      protected String toUserName;
  
      // 开发者微信号
      protected String fromUserName;
  
      // 消息创建时间 (整型)
      protected Integer createTime;
  
      /**
       * 被动响应消息类型
       * 1text 文本消息
       * 2image 图片消息
       * 3voice 语音消息
       * 4video 视频消息
       * 5music 音乐消息
       * 6news 图文消息
       */
      protected String msgType;
  
      /**
       * 用接收到的消息初始化要发出去的消息,关键在于两者 toUserName  fromUserName 相反
       * @param inMsg inMsg
       */
      public OutMsg(InMsg inMsg) {
          this.toUserName = inMsg.getFromUserName();
          this.fromUserName = inMsg.getToUserName();
          this.createTime = now();
      }
  
      public OutMsg() {
  
      }
  
      protected abstract void subXml(StringBuilder sb);
  
      /**
       * 转换xml
       * @return {String}
       */
      public String toXml() {
          StringBuilder sb = new StringBuilder();
  
          sb.append("<xml>\n");
          sb.append("<ToUserName><![CDATA[").append(toUserName).append("]]></ToUserName>\n");
          sb.append("<FromUserName><![CDATA[").append(fromUserName).append("]]></FromUserName>\n");
          sb.append("<CreateTime>").append(createTime).append("</CreateTime>\n");
          sb.append("<MsgType><![CDATA[").append(msgType).append("]]></MsgType>\n");
          subXml(sb);
          sb.append("</xml>");
  
          return sb.toString();
      }
  
      protected String nullToBlank(String str) {
          return null == str ? "" : str;
      }
  
      public Integer now() {
          return (int)(System.currentTimeMillis() / 1000);
      }
  
      public String getToUserName() {
          return toUserName;
      }
  
      public void setToUserName(String toUserName) {
          this.toUserName = toUserName;
      }
  
      public String getFromUserName() {
          return fromUserName;
      }
  
      public void setFromUserName(String fromUserName) {
          this.fromUserName = fromUserName;
      }
  
      public Integer getCreateTime() {
          return createTime;
      }
  
      public void setCreateTime(Integer createTime) {
          this.createTime = createTime;
      }
  
      public String getMsgType() {
          return msgType;
      }
  
      public void setMsgType(String msgType) {
          this.msgType = msgType;
      }
  }