1: <?php
2:
3: class Weixin_Template{
4:
5: public $time;
6:
7: public function __construct(){
8: $this->time = time();
9: }
10:
11: public function toMsgText($fromUserName, $toUserName, $Msg){
12: $text = <<<EOF
13: <xml>
14: <ToUserName><![CDATA[%s]]></ToUserName>
15: <FromUserName><![CDATA[%s]]></FromUserName>
16: <CreateTime>%s</CreateTime>
17: <MsgType><![CDATA[text]]></MsgType>
18: <Content><![CDATA[%s]]></Content>
19: </xml>
20: EOF;
21: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $Msg);
22: return $resultStr;
23: }
24:
25: public function toMsgImage($fromUserName, $toUserName, $MediaId){
26: $text = <<<EOF
27: <xml>
28: <ToUserName><![CDATA[%s]]></ToUserName>
29: <FromUserName><![CDATA[%s]]></FromUserName>
30: <CreateTime>%s</CreateTime>
31: <MsgType><![CDATA[image]]></MsgType>
32: <Image>
33: <MediaId><![CDATA[%s]]></MediaId>
34: </Image>
35: </xml>
36: EOF;
37: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $MediaId);
38: return $resultStr;
39: }
40:
41: public function toMsgVoice($fromUserName, $toUserName, $MediaId){
42:
43: $text = <<<EOF
44: <xml>
45: <ToUserName><![CDATA[%s]]></ToUserName>
46: <FromUserName><![CDATA[%s]]></FromUserName>
47: <CreateTime>%s</CreateTime>
48: <MsgType><![CDATA[voice]]></MsgType>
49: <Voice>
50: <MediaId><![CDATA[%s]]></MediaId>
51: </Voice>
52: </xml>
53: EOF;
54: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $MediaId);
55: return $resultStr;
56: }
57:
58: public function toMsgVideo($fromUserName, $toUserName, $MediaId, $Title, $Description){
59: $text = <<<EOF
60: <xml>
61: <ToUserName><![CDATA[%s]]></ToUserName>
62: <FromUserName><![CDATA[%s]]></FromUserName>
63: <CreateTime>%s</CreateTime>
64: <MsgType><![CDATA[video]]></MsgType>
65: <Video>
66: <MediaId><![CDATA[%s]]></MediaId>
67: <Title><![CDATA[%s]]></Title>
68: <Description><![CDATA[%s]]></Description>
69: </Video>
70: </xml>
71: EOF;
72: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $MediaId, $Title, $Description);
73: return $resultStr;
74: }
75:
76: public function toMsgMusic($fromUserName, $toUserName, $Title, $Description, $MusicUrl, $HQMusicUrl, $ThumbMediaId){
77: $text = <<<EOF
78: <xml>
79: <ToUserName><![CDATA[%s]]></ToUserName>
80: <FromUserName><![CDATA[%s]]></FromUserName>
81: <CreateTime>%s</CreateTime>
82: <MsgType><![CDATA[music]]></MsgType>
83: <Music>
84: <Title><![CDATA[%s]]></Title>
85: <Description><![CDATA[%s]]></Description>
86: <MusicUrl><![CDATA[%s]]></MusicUrl>
87: <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
88: </Music>
89: </xml>
90: EOF;
91: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $Title, $Description, $MusicUrl, $HQMusicUrl, $ThumbMediaId);
92: return $resultStr;
93: }
94:
95:
96: public function toMsgMusicId($fromUserName, $toUserName, $Title, $Description, $MusicUrl, $HQMusicUrl, $ThumbMediaId){
97: $text = <<<EOF
98: <xml>
99: <ToUserName><![CDATA[%s]]></ToUserName>
100: <FromUserName><![CDATA[%s]]></FromUserName>
101: <CreateTime>%s</CreateTime>
102: <MsgType><![CDATA[music]]></MsgType>
103: <Music>
104: <Title><![CDATA[%s]]></Title>
105: <Description><![CDATA[%s]]></Description>
106: <MusicUrl><![CDATA[%s]]></MusicUrl>
107: <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
108: <ThumbMediaId><![CDATA[%s]]></ThumbMediaId>
109: </Music>
110: </xml>
111: EOF;
112: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $Title, $Description, $MusicUrl, $HQMusicUrl, $ThumbMediaId);
113: return $resultStr;
114: }
115:
116: public function toMsgNews($fromUserName, $toUserName, $News){
117: if(empty($News))
118: exit('send news message not null!!!');
119:
120: $item = <<<EOF
121: <item>
122: <Title><![CDATA[%s]]></Title>
123: <Description><![CDATA[%s]]></Description>
124: <PicUrl><![CDATA[%s]]></PicUrl>
125: <Url><![CDATA[%s]]></Url>
126: </item>
127: EOF;
128: $items = '';
129: foreach($News as $k=>$v){
130: $items .= sprintf($item, $v['title'], $v['desc'], $v['pic'], $v['link'])."\r\n";
131: }
132:
133: $new = <<<EOF
134: <ArticleCount>%s</ArticleCount>
135: <Articles>
136: %s
137: </Articles>
138: EOF;
139: $num = count($News);
140: $new = sprintf($new, $num, $items);
141:
142: $text = <<<EOF
143: <xml>
144: <ToUserName><![CDATA[%s]]></ToUserName>
145: <FromUserName><![CDATA[%s]]></FromUserName>
146: <CreateTime>%s</CreateTime>
147: <MsgType><![CDATA[news]]></MsgType>
148: %s
149: </xml>
150: EOF;
151: $resultStr = sprintf($text, $fromUserName, $toUserName, $this->time, $new);
152: return $resultStr;
153: }
154: }
155: